home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 1
/
Cream of the Crop 1.iso
/
BUSINESS
/
PROLIT10.ARJ
/
MANUAL.TXT
< prev
next >
Wrap
Text File
|
1992-01-01
|
289KB
|
6,381 lines
PRO-dVelBase (TM) Lite version 1.0 Reference Guide
copyright (C) 1992
Accelerated Software
15910 - 112A St.
Edmonton, Alberta
Canada T5X 4X3
Phone: (403) 456-9163
Fax: (403) 457-3582
Page I
T a b l e o f C o n t e n t s
===============================
Chapter 1: Introduction . . . . . . . . . . . . . . . Page 1
A. Registration . . . . . . . . . . . . . . . . . Page 1
B. Technical Support . . . . . . . . . . . . . . . Page 1
C. How to Use This Documentation . . . . . . . . . Page 1
D. Technical Specifications of PRO-dVelBase . . . Page 2
Database Specifications . . . . . . . . . . . Page 2
Forms . . . . . . . . . . . . . . . . . . . . Page 2
Fields . . . . . . . . . . . . . . . . . . . Page 3
Tables . . . . . . . . . . . . . . . . . . . Page 3
Queries . . . . . . . . . . . . . . . . . . . Page 3
Reports . . . . . . . . . . . . . . . . . . . Page 3
Labels . . . . . . . . . . . . . . . . . . . Page 4
Mail . . . . . . . . . . . . . . . . . . . . Page 4
Functions and expressions . . . . . . . . . . Page 4
Searches . . . . . . . . . . . . . . . . . . Page 4
Utilities . . . . . . . . . . . . . . . . . . Page 4
E. System Requirements . . . . . . . . . . . . . . Page 4
F. Compatibility . . . . . . . . . . . . . . . . . Page 4
G. Installation and Running PRO-dVelBase . . . . . Page 5
H. Help . . . . . . . . . . . . . . . . . . . . . Page 6
I. Basic Principles . . . . . . . . . . . . . . . Page 6
Chapter 2: Form . . . . . . . . . . . . . . . . . . . Page 8
A. Form/Create . . . . . . . . . . . . . . . . . . Page 8
Database Fields . . . . . . . . . . . . . . . Page 12
Form: Fixed Field Definitions . . . Page 12
Form: Changeable Field Definitions Page 18
Calculated Fields . . . . . . . . . . . . . . Page 22
Calculated Field Definitions . . . Page 22
Summary Calculated Fields . . Page 22
Formula Calculated Fields . . Page 22
Editing Text and Fields . . . . . . . . . . . Page 24
Field Identification Characters . . Page 24
Moving Text and Fields . . . . . . Page 24
Blocking Text and Fields . . . . . Page 24
Editing Field Definitions . . . . . Page 25
Drawing Boxes . . . . . . . . . . . Page 25
IBM Extended Graphics Characters . Page 25
Moving to Next/Previous Screen . . Page 25
Deleting Fields . . . . . . . . . . Page 25
Multi-File Forms . . . . . . . . . . . . . . Page 26
Foreign Database Relationship
Definitions . . . . . . . . . . . . Page 26
Scroll Window . . . . . . . . . . . Page 28
Steps to Removing Relationships . . Page 29
Saving a Form . . . . . . . . . . . . . . . . Page 29
B. Form/Modify . . . . . . . . . . . . . . . . . . Page 29
C. Form/Select . . . . . . . . . . . . . . . . . . Page 30
D. Form/Execute . . . . . . . . . . . . . . . . . Page 31
Page II
Appending and Editing Records . . . . . . . . Page 33
Editing Character Fields . . . . . Page 34
Editing Numeric Fields . . . . . . Page 34
Editing Logical Fields . . . . . . Page 35
Editing Single Key Fields . . . . . Page 35
Editing Date Fields . . . . . . . . Page 35
Editing Time Fields . . . . . . . . Page 35
Editing Memo Fields . . . . . . . . Page 35
Editing Fields in a One-to-Many Area Page 36
Table View . . . . . . . . . . . . . . . . . Page 36
Altering Table View . . . . . . . . Page 37
Editing and Appending in Table Mode Page 38
Indexed Table Mode . . . . . . . . Page 39
The Search Menu . . . . . . . . . . . . . . . Page 40
Goto . . . . . . . . . . . . . . . Page 40
Search . . . . . . . . . . . . . . Page 40
Search & Replace . . . . . . . . . Page 42
Search & Delete . . . . . . . . . . Page 42
Search & Undelete . . . . . . . . . Page 43
E. Form/Unselect . . . . . . . . . . . . . . . . . Page 43
F. Form/Delete . . . . . . . . . . . . . . . . . . Page 43
Chapter 3: Query . . . . . . . . . . . . . . . . . . . Page 45
A. Query/Create . . . . . . . . . . . . . . . . . Page 45
Query Editor . . . . . . . . . . . . . . . . Page 46
To Select Fields for Viewing . . . . . . . . Page 48
To Sort the Fields . . . . . . . . . . . . . Page 49
Saving The Query . . . . . . . . . . . . . . Page 49
B. Query/Modify . . . . . . . . . . . . . . . . . Page 50
C. Query/Select . . . . . . . . . . . . . . . . . Page 50
To Select a Query . . . . . . . . . . . . . . Page 50
D. Query/Execute . . . . . . . . . . . . . . . . . Page 51
E. Query/Unselect . . . . . . . . . . . . . . . . Page 51
F. Query/Delete . . . . . . . . . . . . . . . . . Page 52
G. Query/Add to Cat. . . . . . . . . . . . . . . . Page 52
To Add a Query to a Catalog . . . . . . . . . Page 52
H. Query/Remove from Cat. . . . . . . . . . . . . Page 52
To Remove a Query from the catalog . . . . . Page 53
Chapter 4: Report . . . . . . . . . . . . . . . . . . Page 54
A. Report/Create . . . . . . . . . . . . . . . . . Page 54
Report Editor . . . . . . . . . . . . . . . . Page 56
Field Placement . . . . . . . . . . . . . . . Page 57
One-to-many Relationships . . . . . . . . . . Page 61
Group Expressions . . . . . . . . . . . . . . Page 62
Saving the Report . . . . . . . . . . . . . . Page 62
B. Report/Modify . . . . . . . . . . . . . . . . . Page 62
C. Report/Select . . . . . . . . . . . . . . . . . Page 62
D. Report/Execute . . . . . . . . . . . . . . . . Page 63
E. Report/Unselect . . . . . . . . . . . . . . . . Page 63
F. Report/Add to Cat. . . . . . . . . . . . . . . Page 63
G. Report/Remove from Cat. . . . . . . . . . . . . Page 63
H. Report/Delete . . . . . . . . . . . . . . . . . Page 63
Page III
Chapter 5: Mail . . . . . . . . . . . . . . . . . . . Page 64
A. Mail/Create . . . . . . . . . . . . . . . . . . Page 64
B. Mail/Modify . . . . . . . . . . . . . . . . . . Page 66
C. Mail/Select . . . . . . . . . . . . . . . . . . Page 66
D. Mail/Execute . . . . . . . . . . . . . . . . . Page 66
E. Mail/Unselect . . . . . . . . . . . . . . . . . Page 66
F. Mail/Add to Cat. . . . . . . . . . . . . . . . Page 66
G. Mail/Remove from Cat. . . . . . . . . . . . . . Page 66
H. Mail/Delete . . . . . . . . . . . . . . . . . . Page 67
I. Mail/Import Text File . . . . . . . . . . . . . Page 67
Chapter 6: Label . . . . . . . . . . . . . . . . . . . Page 68
A. Label/Create . . . . . . . . . . . . . . . . . Page 68
B. Label/Modify . . . . . . . . . . . . . . . . . Page 72
C. Label/Select . . . . . . . . . . . . . . . . . Page 72
D. Label/Execute . . . . . . . . . . . . . . . . . Page 72
E. Label/Unselect . . . . . . . . . . . . . . . . Page 72
F. Label/Add to Cat. . . . . . . . . . . . . . . . Page 72
G. Label/Remove from Cat. . . . . . . . . . . . . Page 72
H. Label/Delete . . . . . . . . . . . . . . . . . Page 72
Chapter 7: Utilities . . . . . . . . . . . . . . . . . Page 73
A. Append . . . . . . . . . . . . . . . . . . . . Page 73
Append/Create . . . . . . . . . . . . . . . . Page 73
Append/Modify . . . . . . . . . . . . . . . . Page 74
Append/Select . . . . . . . . . . . . . . . . Page 74
Append/Execute . . . . . . . . . . . . . . . Page 75
Append/Unselect . . . . . . . . . . . . . . . Page 75
Append/Add to Cat. . . . . . . . . . . . . . Page 75
Append/Remove from Cat. . . . . . . . . . . . Page 75
Append/Delete . . . . . . . . . . . . . . . . Page 75
B. Post . . . . . . . . . . . . . . . . . . . . . Page 75
Post/Create . . . . . . . . . . . . . . . . . Page 76
Post/Modify . . . . . . . . . . . . . . . . . Page 77
Post/Select . . . . . . . . . . . . . . . . . Page 77
Post/Execute . . . . . . . . . . . . . . . . Page 77
Post/Unselect . . . . . . . . . . . . . . . . Page 78
Post/Add to Cat. . . . . . . . . . . . . . . Page 78
Post/Remove from Cat. . . . . . . . . . . . . Page 78
Post/Delete . . . . . . . . . . . . . . . . . Page 78
C. Setup . . . . . . . . . . . . . . . . . . . . . Page 78
D. Re-index . . . . . . . . . . . . . . . . . . . Page 79
E. Database Pack . . . . . . . . . . . . . . . . . Page 79
F. Clone . . . . . . . . . . . . . . . . . . . . . Page 79
G. Zap . . . . . . . . . . . . . . . . . . . . . . Page 79
Chapter 8: Options . . . . . . . . . . . . . . . . . . Page 80
A. Change Dir . . . . . . . . . . . . . . . . . . Page 80
B. Recalc . . . . . . . . . . . . . . . . . . . . Page 80
C. Flush . . . . . . . . . . . . . . . . . . . . . Page 80
D. Printer Setup . . . . . . . . . . . . . . . . . Page 80
Printer Setup/Create . . . . . . . . . . . . Page 81
Printer Setup/Modify . . . . . . . . . . . . Page 81
Printer Setup/Delete . . . . . . . . . . . . Page 82
Page IV
E. Save WorkArea . . . . . . . . . . . . . . . . . Page 82
F. Quit . . . . . . . . . . . . . . . . . . . . . Page 82
Appendix A: dBASE (TM) Naming Conventions . . . . . . Page 83
Appendix B: Formulas and Functions . . . . . . . . . . Page 84
A. Formulas . . . . . . . . . . . . . . . . . . . Page 84
B. Constants . . . . . . . . . . . . . . . . . . . Page 84
Numeric Constants . . . . . . . . . . . . . . Page 84
Character Constants . . . . . . . . . . . . . Page 84
Logical Constants . . . . . . . . . . . . . . Page 85
Date Constants . . . . . . . . . . . . . . . Page 85
C. Operators . . . . . . . . . . . . . . . . . . . Page 85
D. Functions . . . . . . . . . . . . . . . . . . . Page 88
ABS(Num_Value) . . . . . . . . . . . . . . . Page 88
ASC(Char_Value) . . . . . . . . . . . . . . . Page 88
AT(Char_Value1, Char_Value2) . . . . . . . . Page 88
CDOW(Date_Value) . . . . . . . . . . . . . . Page 88
CHR(Num_Value) . . . . . . . . . . . . . . . Page 88
CMONTH(Date_Value) . . . . . . . . . . . . . Page 89
CTOD(Char_Value) . . . . . . . . . . . . . . Page 89
DATE() . . . . . . . . . . . . . . . . . . . Page 89
DAY(Date_Value) . . . . . . . . . . . . . . . Page 89
DBF() . . . . . . . . . . . . . . . . . . . . Page 89
DEL() . . . . . . . . . . . . . . . . . . . . Page 89
DELETED() . . . . . . . . . . . . . . . . . . Page 89
DOW(Date_Value) . . . . . . . . . . . . . . . Page 89
DTOC(Date_Value) and DTOS(Date_Value) . . . . Page 89
EXP(Num_Value) . . . . . . . . . . . . . . . Page 90
FIELD(Num_Value) . . . . . . . . . . . . . . Page 90
IIF(Condition, Expression1, Expression2) . . Page 90
INT(Num_Value) . . . . . . . . . . . . . . . Page 90
ISALPHA(Char_Value) . . . . . . . . . . . . . Page 90
ISLOWER(Char_Value) . . . . . . . . . . . . . Page 90
ISUPPER(Char_Value) . . . . . . . . . . . . . Page 90
LEFT(Char_Value, Number of characters from left) Page 90
LEN(Char_Value) . . . . . . . . . . . . . . . Page 91
LOG(Num_Value) . . . . . . . . . . . . . . . Page 91
LOWER(Char_Value) . . . . . . . . . . . . . . Page 91
LTRIM(Char_Value) . . . . . . . . . . . . . . Page 91
MAX(Num_Value1, Num_Value2) . . . . . . . . . Page 91
MIN(Num_Value1, Num_Value2) . . . . . . . . . Page 91
MOD(Num_Value1, Num_Value2) . . . . . . . . . Page 91
MONTH(Date_Value) . . . . . . . . . . . . . . Page 91
RECCOUNT() . . . . . . . . . . . . . . . . . Page 91
RECNO() . . . . . . . . . . . . . . . . . . . Page 91
RIGHT(Char_Value, Number of characters from
right) . . . . . . . . . . . . . . . . . Page 92
ROUND(Num_Value1, Num_Value2) . . . . . . . . Page 92
RTRIM(Char_Value) . . . . . . . . . . . . . . Page 92
SPACE(Num_Value) . . . . . . . . . . . . . . Page 92
SQRT(Num_Value) . . . . . . . . . . . . . . . Page 92
STR(Num_Value, Length, Decimals) . . . . . . Page 92
SUBSTR(Char_Value, Starting Position, Number of
Page V
Characters) . . . . . . . . . . . . . . Page 92
TIME() . . . . . . . . . . . . . . . . . . . Page 92
UPPER(Char_Value) . . . . . . . . . . . . . . Page 93
VAL(Char_Value) . . . . . . . . . . . . . . . Page 93
YEAR(Date_Value) . . . . . . . . . . . . . . Page 93
Appendix C: Warning and Error Messages . . . . . . . . Page 94
A. Warning Messages . . . . . . . . . . . . . . . Page 94
B. Error Messages . . . . . . . . . . . . . . . . Page 95
Appendix D: PRO-dVelBase Files . . . . . . . . . . . Page 102
A. Program Files . . . . . . . . . . . . . . . . Page 102
B. Created Files . . . . . . . . . . . . . . . . Page 102
Appendix E: Trademark Notices . . . . . . . . . . . Page 104
Page 1
Chapter 1: Introduction
========================
PRO-dVelBase Lite (from now on abbreviated to PRO-dVelBase) is a
relational database management system. It was developed around
the premise that database management is not the sole domain of
the programmer.
With PRO-dVelBase, all the features and functions of a powerful
database management system are accessed through menus and require
no programming at all. Therefore, nonprogrammers may create very
sophisticated database applications without using a programming
language.
PRO-dVelBase revolves around a series of "objects" such as form,
query, report, mail, label, append and post. These "objects" may
be created, modified, selected, executed and deleted. Through
manipulation of these objects, the various database functions may
be easily achieved without using a complex programming language.
A. Registration
===============
PRO-dVelBase Lite 1.0 is distributed as "shareware". This allows
you to "try before you buy". If you find this program helpful,
we ask you to send in a registration fee. With this registration
fee, you will obtain a registered copy of the software, a printed
200 page reference manual, a 100 page tutorial, a coupon towards
the purchase of PRO-dVelBase 2.0 and free telephone support for
90 days. Please print the accompanying file, README.TXT, for an
order form.
B. Technical Support
====================
Ninety day free telephone support is available for all registered
users of PRO-dVelBase.
C. How to Use This Documentation
================================
This reference guide will describe the objects and commands used
in PRO-dVelBase. Each of the main menu items will be described
in a separate chapter. Submenu commands will be described in
logical order rather than in order of appearance on the menu.
The reference guide is only a synopsis of the reference manual.
Upon registration of the software, a complete, printed reference
manual and tutorial will be sent.
The convention used in this reference guide to indicate the path
used to reach a certain command from the main menu is with a
forward slash (/). For example, Form/Modify means first
selecting Form from the main menu and then selecting Modify from
Page 2
the first pull-down menu.
D. Technical Specifications of PRO-dVelBase
===========================================
The following is a detailed list of PRO-dVelBase features. It
serves as a thumbnail sketch of the capabilities of PRO-dVelBase.
Please note that these are the specifications of PRO-dVelBase
Lite. PRO-dVelBase 2.0 has many more features and allows for
larger databases.
Database Specifications
-----------------------
* Maximum of 127 fields per record
* Maximum of 65,535 records per database file
* Database (.DBF and .DBT) and index (.NDX) files are dBASE
compatible
* Field types:
- Character (maximum of 128 characters)
- Numeric (maximum of 19 digits)
- Date
- Time
- Logical (True or False)
- Single Key (user defined single key)
- Memo (maximum of 10,000 characters)
Forms
-----
* Forms are designed by placing text and fields directly on
the screen
* Underlying database file automatically created with form
* Forms span up to 5 screens
* Place up to 127 fields per form
* Draw boxes, lines and graphics characters to improve the
look of the form
* Forms may relate up to 5 database files, each with a
maximum of 7 indexes
* Maximum of one 1-to-20 link in a one-to-many relationship
(i.e. one record in a parent database file linked with 20
records in child database file)
* Displays a one-to-many relationship in a "scroll-window",
that allows these records to be scrolled within a window
on the screen for ease of viewing
* Able to print a report after each new record as in an
invoicing system
* Able to print a report, label or mail of the currently
viewed record directly from the form
* Able to zoom into underlying database file and display it
in table view (in sequential or indexed order)
* Able to transfer records from table view into form view,
thus acting as a "look-up table"
Page 3
Fields
------
* Fields defined by answering a series of questions
* Display length of long fields may be changed
* Fields may be required (null data disallowed), fully
filled or forced upper case
* Able to perform range check on numeric fields
* Automatic word wrap for memo fields with a maximum of one
memo field per form
* Multiple date and time formats supported
* Single key fields allow users to specify allowed keys
(i.e. "MF" for sex field)
* Allows up to 127 calculated (virtual) fields per form
* Allows for:
- derived fields (fields based upon a formula)
- copied fields (fields copied from previous record)
- default fields (fields that automatically display a
certain value)
- sequential fields (fields that increment sequentially
based upon an indexed field)
* Create pictures that act as templates and data masks
(i.e. (NNN) NNN-NNNN for a telephone field)
Tables
------
* Able to edit records in table
* Able to transfer records from table to form
* Change order of fields to view
* Able to view records in sequential or indexed order
Queries
-------
* Uses "Query-by-Example" to create queries
* Multiple .AND. and .OR. conditions supported
* Ascending sorts on up to 10 fields either case sensitive
or case insensitive
* Queries act as filters to allow only the selected records
to be processed by Report, Mail, Label, Append or Post
Reports
-------
* Created by placing fields and text on screen
* Uses "band" method to place fields and text in desired
location on report
* Allows up to 5 levels of grouping
* Field formatting accomplished by answering a series of
questions
* Allows calculated, summary (sum, average, high, low,
count) and system (record count, record number, page,
date, time) fields
Page 4
Labels
------
* Created by placing fields and text onto a label
* Supports any size label
* Multiple copies allowed
* Calculated, summary and system fields supported
Mail
----
* Merges letter with database records
* Use built in editor or your favorite word processor
Functions and expressions
-------------------------
* Supports most dBASE III functions directly and expression
syntax is dBASE compatible
Searches
--------
* Able to search through form or table
* Allows global operations such as delete, undelete and
replace
Utilities
---------
* Allows appending of records to a second database file
* One database file may post to another one
* Allows for zapping (removing all records) and packing
(removing marked records) of a database file
* Structure of a database file may be cloned to second
database file
E. System Requirements
======================
* IBM PC/XT/AT, PS/2 or 100% compatible computer
* PC/MS DOS 3.0 or greater
* 80x87 math coprocessor supported
* Hard drive with at least 2 megabytes free disk space
* 640K RAM
* Supports monochrome, Hercules, CGA, EGA or VGA adapters
* Printer recommended
F. Compatibility
================
PRO-dVelBase is completely data file compatible with any program
that uses .DBF file format. Examples of such programs include:
dBASE III, dBASE IV, Clipper, FoxBase and dBXL. This means that
any data files created by any of these programs may be used by
PRO-dVelBase directly without conversion and vice versa. The
index files (.NDX extension) are also dBASE III compatible
although the names of the files are determined by the program
Page 5
rather than the user.
G. Installation and Running PRO-dVelBase
========================================
PRO-dVelBase Lite is distributed in .ZIP file format and requires
a copy of PKUNZIP.EXE to uncompress it. A program directory
should be created first. This may be done with the command,
"MD C:\PRO" (without the quotes), from the DOS prompt. The
program can then be uncompressed using the command,
"PKUNZIP C:\PRO\PROLIT10 C:\PRO" (if PROLIT10.ZIP is on C:\PRO
directory). The sample application is entitled, "WIDGETS.ZIP".
Another subdirectory should be created to store the sample
widgets application. This is created with the command,
"MD C:\PRO\WIDGETS", from the DOS prompt. The widgets
application can then be uncompressed with the command,
"PKUNZIP C:\PRO\WIDGETS.ZIP C:\PRO\WIDGETS".
The CONFIG.SYS file should be changed to include the following
lines.
FILES=60
BUFFERS=20
Be sure you are on the subdirectory in which PRO-dVelBase resides
by typing CD\PRO followed by ENTER.
It is recommended that different applications be stored in
separate subdirectories beneath the one in which PRO-dVelBase
resides. A subdirectory may be created with the command:
MD <DIRECTORY NAME>
The program may now be run directly by just typing PRO followed
by ENTER from the DOS prompt. At the main menu, the sample
application can be viewed by using the Options/Change Dir command
to change the data directory to "WIDGETS". A form can then be
selected and executed.
PRO-dVelBase automatically senses what type of video adapter card
the computer has and adjusts itself accordingly to display in
either monochrome or color. The only problem that may arise if
the computer has a CGA card with a composite monochrome monitor.
PRO-dVelBase will then attempt to display the screens in color.
The screen resolution on such a monitor may be very poor. The
way around this problem is to force PRO-dVelBase to display in
monochrome. To do this, use the DOS MODE command. From the DOS
prompt, type "MODE BW80" before typing PRO. PRO-dVelBase will
now be displaying its screens in monochrome.
If the keyboard locks after starting the program, try re-starting
the program by typing, "PRO -k". PRO-dVelBase normally attempts
to accelerate the typematic rate on AT style keyboards. On some
keyboards, this may not work causing the keyboard to freeze.
Using the "-k" switch turns off the keyboard speed up.
Page 6
The printer also has to be initially setup. Although not
absolutely necessary, having a printer definition file allows for
more precise control over your printer. At the main menu, press
O followed by P followed by C (Options/Printer Setup/Create).
You will then arrive at the Printer Definition Screen. You may
now fill in the control codes that control special functions for
your particular printer (see your printer reference manual).
Pressing F9 will list some common brands of printers and you may
just select one and the codes will automatically be filled in.
If you do not see your particular printer, many dot-matrix
printers are Epson compatible and selecting that one is a safe
bet. If you have a laser printer, many are also H.P. LaserJet
compatible and selecting the H.P. LaserJet may work. When
finished press F10 followed by Y to save the printer definition.
The specifics about printer setup are found in Chapter 8 under
Options: Printer Setup.
H. Help
=======
PRO-dVelbase uses a "hypertext" help system that makes it very
easy to learn all the features that PRO-dVelBase has to offer.
The help system is accessed by pressing F1. The initial help
screen is context sensitive i.e. it depends upon which part of
the program it is accessed from. Key words are highlighted and
further help on these words may be accessed by moving the cursor
over the highlighted word and pressing ENTER. Previous help
screens are accessed by pressing PAGEUP. The entire help system
may be navigated through the "Main Help Menu" option. Selecting
Next views the next help screen in the section.
I. Basic Principles
===================
There are a few basic principles that apply to PRO-dVelBase.
Understanding these principles is essential.
The main objects of PRO-dVelBase (Form, Query, Report, Mail and
Label) may be accessed through the main menu. Secondary objects
(Append and Post) may be accessed through the Utilities submenu.
Each of these objects may be selected, executed, created,
modified, unselected, deleted, added to catalog or removed from
catalog.
You must first create the object and select it before you may
execute it.
The process of developing objects requires that you use the
submenu commands Create, Select and then Execute. However, you
only need to create your objects once. Thereafter, you must
always select it first before you will be allowed to execute it.
All future changes to the objects may be made through the Modify
submenu command.
Page 7
To clarify the above, you only create your form once.
Thereafter, whenever you want to use your form, you must select
it first before executing it.
Similarly, you only create your report once but whenever you need
to use it you must select it first before you may execute it.
Form is the main object that all other objects are related to or
built upon. The creation of subsequent objects is dependent upon
which form is selected.
Page 8
Chapter 2: Form
================
The form constitutes the basic method of data entry and relating
database files when using PRO-dVelBase. Creating a form
automatically creates the underlying database (.DBF extension)
file.
There are six submenu commands under the form menu. These
include: Select, Execute, Create, Modify, Unselect and Delete.
A. Form/Create
==============
This submenu command is used to create forms. A form consists of
one or more database files. Each form is associated with a
primary database file. A file that is related to the primary
database file is called a secondary database file. One that is
related to a secondary database file is called a tertiary
database file and so on. The secondary, tertiary, etc. database
files are also called collectively, foreign database files
because they are foreign to the primary database file. Another
way of expressing this is using the terms parent and child
databases or parent and child records.
In forms, you may:
1. Define and place fields.
2. Set relationships between various database files.
To create your form:
1. Design your entire database on paper. Write down all the
field names and the specifications for each field.
2. Identify key fields. If you are creating several databases
that will be related together, you need to identify the key
fields that will be used to set the relationships. Key
fields are fields that have a unique value to them that
distinguishes them from every other record in the database
file. The value of a key field is common between various
database files. For example, the social security number is
a unique number that identifies a person and can be used as
a key field. All key fields need to be indexed.
Taking the extra time to design your database on paper will save
you time when designing it at your computer. You should have a
clear picture of what you want to design before sitting down at
your computer. It is much easier and less time consuming to make
corrections on paper than to make them at your computer.
Once you have designed your database on paper, then proceed to
use PRO-dVelBase.
1. Select Form/Create.
2. Give the form a name. This name is up to 8 characters in
length and must follow dBASE conventions in naming. If you
Page 9
are not familiar with dBASE conventions in naming, see
Appendix A: dBASE Naming Conventions.
If you select a name that already exists, you will get an
error message and you will be asked to enter a new name.
Make sure the new name you choose is descriptive of the form
you are creating.
3. The next screen is the Form Definitions Screen and you will
be asked, "Do you want to print a report after each new
record? (Y/N)". Answer YES or NO depending upon whether you
want a report. If you answer YES, PRO-dVelBase will
generate a single transaction report after each new record
added to the end of the database. The format of the report
is dependent upon the currently selected report. If no
report is in the work area, then the report will not be
printed. This feature may be used in an invoicing system
where the customer would receive a statement after the
transaction.
4. This takes you to the next screen, which is the form editor.
Towards the bottom of the screen is the status line. The
status line consists of the following information.
a. Date
b. Time
c. Screen number
d. Row and column number of the cursor
e. Status of the INSERT key
f. Status of the Caps Lock key
g. Status of the Scroll Lock key
h. Status of the Num Lock key
The form editor is similar to many basic text editors. It allows
for full screen editing. Text and fields may be placed directly
on the screen at any location on up to 5 different screens.
Moving between various screens occurs by the PAGEUP and PAGEDOWN
keys. The INSERT key allows toggling between the insert mode and
overwrite mode. A blocking function is also present and the
blocked area may be moved or copied to another area of the screen
or to a different screen. Lines and IBM graphics characters
(ASCII values greater than 127) may also be placed on the forms.
Page 10
The following table shows the active keys on the form editor.
=================================================================
Active Key Action
-----------------------------------------------------------------
ESC takes you to the previous screen and
allows you to exit this section of the
program, without saving.
ARROW CURSOR KEYS moves the cursor in the direction of the
arrows.
PAGEDOWN moves to the next screen.
PAGEUP moves to the previous screen.
HOME moves the cursor to the extreme left.
END moves the cursor to the last text or
field on the screen.
INSERT toggles between overwrite and insert
mode.
DELETE deletes the text or field on the cursor.
Also deletes the relationships between
files if cursor is in a key field.
BACKSPACE deletes the previous text character.
ENTER inserts a blank line when in insert mode
only if the bottom line of the form is
empty.
F1 context sensitive help.
F3 starts and ends blocking of an area.
F5 copies blocked area.
F6 moves the blocked area.
F7 places and defines a database or
calculated field.
ALT-F7 sets a relationship to another database
file.
F10 completes and saves the form.
ALT-B displays and activates box drawing
characters.
ALT-C displays and places IBM extended
graphics characters.
ALT-S defines a scroll window for a
one-to-many relationship.
CTRL-C centers the text and fields on the
current line.
CTRL-Y clears the text from a line.
=================================================================
Designing a form consists of placing text that describes a field
and then placing and defining the actual field itself.
The form editor allows you to place text and fields on a maximum
of 5 different screens. As a general rule, unless you have many
fields, only one screen should be used. The reason for this is
that after you have completed the designing of your form, you
will be able to enter data more efficiently with fewer screens.
Page 11
If multiple screens are necessary, try to place logically related
fields together on the same screen. For example, in an invoicing
system, place customer information on screen one and sales on
screen two.
Start by placing your text on the screen. Lay out your text in
the same way you would want it to appear for data entry purposes.
When designing the form, the text should be placed on the screen
first. This will give a basic layout as to how the fields should
be placed.
You may want to start by placing a title for the form. Later,
you may want to place a box around the title. After placing the
title, you may place the rest of your text on the screen.
Note: You will need to wait until you have placed your fields
before attempting to save your work. If you attempt to
save your work after placing the text only, you will
generate an error message and you will not be allowed
to save your work until you have placed at least 1
field on your screen.
It is recommended fields that are similar to one another be
placed together. For example, it is wise to place a surname
field next to a first name field.
During data entry, the cursor will jump from fields in the
direction of left to right, then top to bottom. This is similar
to writing on a piece of paper.
After the text has been placed on the screen, you will need to
place the fields somewhere close to the appropriate text labels.
When placing a field, it is important to make sure that there is
enough space on the screen to accommodate the entire display
length of the field. If there is insufficient space, an error
message will be generated.
Placing fields is done as follows:
1. Move the cursor over to where you want to place the field.
This could be at a location adjacent, beneath or on top of
the text that you have already placed.
2. Press F7. A window opens giving you two options to choose
from: Database or Calculated fields.
3. Database fields are real fields that exist on database
files. Calculated fields are virtual fields that exist in
the memory of the computer only and are based on a
calculation formula.
4. Select Database. You have now entered the field definition
screen.
Page 12
Database Fields
---------------
There are 2 sets of field definitions for database fields: fixed
and changeable. Fixed field definitions may only be modified
from the form in which the database file was created. Changeable
field definitions may be altered from any form that links to that
field. This means that if a given field has been linked to
multiple forms, the changeable field definitions for that field
may be different for each form. The fixed field definitions,
however, will be exactly the same for each of the forms.
The process of making field definitions consists of answering a
series of questions. Each subsequent question that is asked will
be determined by how you answered the previous question. The
built in logic of PRO-dVelBase determines what question will be
asked next because some questions may be redundant or irrelevant
depending on how the previous questions were answered.
When defining your fields, the UP key will take you to the
previous question and pressing ESC will abort the process of
defining the field.
Form: Fixed Field Definitions
-----------------------------
Fieldname:
A field name may be up to 10 characters in length and
may consist of letters of the alphabet, numbers, or the
underscore (_). A number cannot be the first character
of the field name. This follows standard dBASE
conventions. (See Appendix A: dBASE Naming
Conventions). Try to choose a field name that is
descriptive of the field.
Note: Field names may not be changed once they are
assigned. The reason is that there may be
calculations and formulas that are referenced to
this field name and it would be very difficult to
update all the references in other files. The
only way a field name may be changed is to delete
the field and redefine it using another field
name. This general rule applies to all objects
created by PRO-dVelBase.
Field type? (C)har (N)umeric (D)ate (T)ime (L)ogical
(S)ingle key (M)emo
PRO-dVelBase supports the five dBASE III field types:
character, numeric, date, logical and memo. It also
has two other field types: time and single key.
==> The default field type is Character.
Page 13
The following table outlines the field types supported
by PRO-dVelBase.
=================================================================
Field Type Field Description
-----------------------------------------------------------------
Char Is a basic text field and consists of
alphanumerics or special characters. Maximum
of 128 characters.
Numeric Consists of positive or negative whole or
decimal numbers. Generally used whenever a
calculation has to be performed on that
field. Maximum of 19 characters, including a
negative sign. May have up to 14 decimal
places.
Date Consists of dates only and has a field length
of 8 characters. It is stored on disk in the
form of CCYYMMDD (where CC=century, YY=year,
MM=month, DD=day). The display format will
be different depending on how it is defined.
Time Consists of time only and has a field length
of 6 characters. It is stored on disk in the
form of HHMMSS (where HH=24 military hours,
MM=minutes, SS=seconds).
Logical Is a single character field that can have
only 1 of 2 values, either "T" (for TRUE) or
"F" (for FALSE). The field may contain the
following constants: T, Y, F, N.
Single key Is a field that holds a single character.
Allowed keys are set at the time of field
definition. This field type is used when
there are a number of choices to be made.
Memo Is a free text field in which anything may be
placed in it. In other words, it is a field
for your comments. Only one memo field may be
defined per form. Maximum length of 10,000
characters.
=================================================================
The following table gives examples of some field types.
=================================================================
Field Type Field Name Value
-----------------------------------------------------------------
Char SURNAME Smith
ADDRESS 123 - Baker St.
CITY Washington D.C.
Numeric PRICE 20.50
QUANTITY 54
Single key SEX "M" - male
"F" - female
COUNTRY "U" - United States
"C" - Canada
"E" - England
=================================================================
Page 14
Is this field required? (Y/N)
This question is only asked for character, date, time
and single key fields. If you answer YES to this
question, you will force the user to enter data into
this field when he is doing data entry. In other
words, you may not just leave this field blank. If you
try to save a record with a required field blank, you
will get a warning message that a required field was
left blank. You may still save the record or you may
choose to fill in the required field.
==> The default is NO.
What is the length of this field?
When determining the length of the field you should
determine how long the longest entry for that field
will be. Make sure there will be enough room for this.
You would not enter a length of 10 in the surname field
if you could possibly have a surname that is 20 in
length. Do not allocate lengths that are much longer
than what you need otherwise, you will be wasting disk
space. Field lengths are automatically assigned to the
field types below, therefore this question would not be
asked for these. The length that is assigned is as
follows:
1. date: 8
2. time: 6
3. logical and single key: 1
Memo fields behave differently from other fields. Memo
fields only occupy 10 bytes on the .DBF file. These
bytes contain a pointer that indicates where the actual
field is located in the corresponding .DBT file. The
amount of space the data occupies in the .DBT is not
fixed but variable. Longer strings will take more
space. If no data is present, no space is used in the
.DBT file. Memo fields are therefore very useful for
fields that have free text since they do not waste
space if empty.
How many decimal places are there?
This question is only asked for numeric fields. They
may have a maximum of 14 decimal places.
What is the display width? What is the display height?
These two questions are asked for memo fields. Both
the height and the width of the window may be defined
at this point. The height of the window must be at
least 2 and the width cannot be greater than 80.
Is this field to be fully filled? (Y/N)
A YES answer will mean that the number of characters
entered must always be equal to the maximum length
assigned to this field. This question is only asked
Page 15
for character fields.
==> The default is NO.
Which keys are allowed?
This question is asked for the single key field type.
You may specify up to 20 keys that the user may choose
from. Keys not included here will be rejected when
doing data entry.
Index this field? (Y/N)
When indexing is performed, the value of this field
will be placed in a separate file in a sorted ascending
sequence. This allows the PRO-dVelBase to access
information very quickly.
==> The default is NO.
Indexing is necessary for:
1. key fields linked to other database files.
2. fast searches.
3. prevention of duplicate entries.
For each database, a maximum of 7 indexes are allowed
therefore, you need to be selective about which fields
to index. The key field must be indexed. Fields that
you use to perform frequent searches should also be
indexed.
Every index is updated automatically whenever you do
data entry, making it a time consuming process. This
means that the more indexes you create, the more time
it will take to update your database thus slowing down
data entry.
All field types except logical and memo may be indexed.
Ignore case while indexing? (Y/N)
Answering YES will automatically convert all lower case
alpha to upper case alpha before it is indexed. For
example, this will make "smith" equivalent to "SMITH".
This is helpful if case insensitive index searches are
needed.
==> The default is NO.
Prevent duplicate entries? (Y/N)
Indexes may be used to prevent the user from entering a
value that is the same as one already entered. After a
value is entered into a field, the index is searched
and if that value is already present, it is rejected.
==> The default is NO.
Page 16
Are numbers allowed? (Y/N)
This question is only asked for the character field
type. If you would like to prevent the user from
entering numbers in this field, answer NO. A numeric
string may be created by answering YES to this question
and not allowing letters of the alphabet or special
characters. The difference between a numeric string
and a numeric field is that a numeric string cannot be
directly used in a calculation. For example, a phone
number field should be defined as a numeric string.
==> The default is YES.
Are letters of the alphabet allowed? (Y/N)
If you would like the user to enter letters of the
alphabet, answer YES. This question is only asked for
character fields.
==> The default is YES.
Upper case only? (Y/N)
Answering YES will force all entries to be in upper
case regardless of whether the caps lock key is in use.
==> The default is NO.
Are special characters allowed? (Y/N)
The following are special character keys: SPACE ! " #
$ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | }
~ This question is only asked for character fields.
==> The default is YES.
Do you want a range check? (Y/N)
Range checks may be performed on numeric fields. A
lower and upper range may be specified and entries
outside this range will generate an error message.
==> The default is NO.
Display format for date? (A)-MM/DD/YY (B)-DD/MM/YY
C)-YY/MM/DD
Three different display formats are allowed for date
fields. When the form is executed, a template will
appear in the date field display indicating which
format was selected. For example, choosing display
format (A) will display the template, "mm/dd/yy". The
purpose of this template is to guide the user on the
proper date format for data entry.
==> The default is MM/DD/YY.
Display format for time? (A)-12 hrs. (B)-24 hrs.
Two different display formats are available for time
Page 17
fields. The first is the 12 hour format (with a
template of "hh:mmp", where p represents A for am or P
for pm) and the second is the 24 hour format, or
military time (with a template of "hh:mm").
==> The default is 12 hours.
Display seconds? (Y/N)
This question is only asked for the time field type.
It allows for seconds to be entered along with the
hours and minutes. The template will also have ":ss"
to indicate that seconds have to be entered.
==> The default is NO.
Word wrap each line? (Y/N)
This question is only asked for memo fields and allows
for each line to be displayed properly without breaking
up words at the end of the line.
==> The default is YES.
Picture:
The purpose of a picture is for formatting the way the
data is to appear in the field display. Pictures only
apply to character fields and the maximum total length
of a picture is 70 characters.
The picture acts as both a template and a mask. As a
template, any special character placed in the picture
will be displayed that way in the field. Note that
these special characters are for display purposes only
and are not saved.
As a mask, pictures will only allow certain characters
at a given position. The following table indicates how
PRO-dVelBase uses pictures as a mask.
=================================================================
Character Effect
-----------------------------------------------------------------
a only alpha characters
A only alpha characters forced to upper
case
b both alpha and numeric characters
B both alpha and numeric characters, with
alpha characters forced to upper case
N or n only numeric characters
x alpha, numeric or special characters
X alpha, numeric or special characters,
with alpha characters forced to upper
case.
=================================================================
Page 18
Here are some examples of pictures.
================================================================
Picture UserKey Strokes Result
----------------------------------------------------------------
(NNN) NNN-NNNN 4034569163 (403) 456-9163
AA-NNNNN xy4645k XY-4645 but
blocks the
final k
=================================================================
The number of alphanumeric characters in the picture
must be equal to the length of the field.
e.g. For a phone number field having a field length of
7.
NNNNNNN is allowed
NNN-NNNN is allowed
NNN-NNN is not allowed
Remember that when using a picture as a mask, the
previous field definition rules take precedence over
the ones in the picture. For example, if you have not
allowed numbers when you defined a field, placing an N
in the picture will not allow you to use numbers.
Form: Changeable Field Definitions
----------------------------------
Display status for field? (A)-both read & write (B)-read
only (C)-hidden
The display status of a field refers to whether the
user is able to see and edit the field. In a read and
write field, the user is able to see and edit the
field. In a read only field, the user may see the
value of the field but is unable to change it. The
cursor will jump over a read only field. In a hidden
field, the user may neither see nor edit the field.
Most fields are generally both read and write.
==> The default is both read & write.
What is the display width?
In character fields, the width of the field display may
be changed. This defaults to the length of the field.
However, it may be shortened if there is limited space
on the screen. If the width of the display is less
than the length of the field, then on data entry, the
value will be scrolled horizontally within the display.
==> The default is the field length.
Page 19
Field value is (A)User entered (B)Derived (C)opied (D)efault
(E)Sequential?
This question affects how a value may be entered into a
field. Most fields are user entered, meaning that it
is up to the user to enter data into the field.
A derived field is one that is calculated based on a
formula that relates it to other fields, functions or
values. For derived fields, a formula must be entered.
Please refer to the Appendix B: Formulas and
Functions. A derived field differs from a calculated
field in that a derived field is real while a
calculated field is virtual and exists only in the
memory of the computer. Generally, a derived field
should be used if you want the value to be saved. The
display status for derived fields should be set for
read only. The reason for this is because even though
it is possible to edit a derived field, its value will
automatically revert back to the calculated result once
the cursor leaves the field.
A copied field is one whose value is copied from the
last record in the database file.
A default field is one that defaults to a certain value
only if the field is empty. It is also based upon a
formula and is very similar to a derived field. The
only difference between it and a derived field is that
a default field is only evaluated when the cursor drops
into the field display.
If the field value is sequential, then its value is
taken from the greatest value of the index of the field
read from. This value is then incremented. This type
of field is particularly valuable in generating unique
values for key fields such as a customer number field.
The field must be indexed.
==> The default is User entered.
Field value appears (A)utomatically (U)ser selected.
This question is only asked for copied, default and
sequential field values. If you define the field value
to appear automatically, then once the cursor drops
into the field, that value will appear if the field is
initially blank. If a value is present initially, no
changes are made unless F5 is pressed. If you define
the field to be user selected then F5 must be pressed
before the value will appear.
==> The default is (A)utomatically.
Page 20
(I)ncrease (D)ecrease (S)ame?
This question is asked for copied field values. It
indicates how the field is to be copied from the last
record of the database file (i.e. whether the value is
to increase, decrease or be the same). In a numeric
field, a value of 1 is either added or subtracted if
the field is increased or decreased. In a character
field, the ASCII value of the rightmost character is
either increased or decreased. If end characters such
as 0, 9, a, z, A or Z are reached then the value is
wrapped around and the second from the right character
is increased or decreased and so on. In date fields,
the date is either increased or decreased by one day.
This question is only applicable to numeric, character
and date fields.
==> The default is (S)ame.
The following table shows some examples of various
operations.
=================================================================
Field Type Initial Value Operation Result
-----------------------------------------------------------------
Numeric 14 Increase 15
Numeric 62.95 Decrease 61.95
Character xyz Increase xza
Character yzzzz Increase zaaaa
Character H06819 Increase H06820
=================================================================
Formula:
Formulas are used for derived and default fields. The
maximum length for formulas is 255 characters. Long
formulas may be displayed in a window for editing by
pressing CTRL-Z (Z means zoom!). A list of fields may
be displayed by pressing F9, a list of operators
displayed by pressing CTRL-F9 and a list of functions
displayed by pressing ALT-F9. Formulas are dBASE
expressions. See Appendix B: Formulas and Functions.
Note that if a field name is used in a formula, the
preceding database name must also be included if the
field is from a foreign database (e.g.
CLIENT->SURNAME). This is not necessary if the field
is found in the primary database file.
Automatic cursor advance on full field? (Y/N)
When the field is fully filled, then the cursor will
automatically move to the next field.
==> The default is NO.
Page 21
Formula error handling? (Y/N)
Formula error handling allows precise control over a
field value using a formula. This question is asked
only for fields that have both a read and write display
status.
==> The default is NO.
Error Formula:
If formula error handling is requested, an error
formula must be entered. An error formula is a dBASE
expression that evaluates to a logical TRUE or FALSE.
A FALSE evaluation will result in the field being
rejected. The error formula is evaluated upon exiting
the field. The maximum length for formulas is 255
characters. Long formulas may be displayed in a window
for editing, by pressing CTRL-Z (Z means zoom!).
Error Message:
The error message may be up to 60 characters in length.
It is displayed in a window in the middle of the screen
if the error formula is evaluated to be FALSE.
Generally, this message should have meaningful
information to help the user enter a correct field
value.
The following table shows an example of error formulas and
the resultant error messages if the given values were
entered into the respective fields.
=================================================================
Error Formula SALE_PRICE COST_PRICE Error Message
-----------------------------------------------------------------
SALE_PRICE>COST_PRICE 13.95 15.00 ERROR: SALE
PRICE IS LESS
THAN COST
PRICE!
SALE_PRICE>COST_PRICE 16.95 15.00 No error
displayed.
=================================================================
Help Message:
Each user entered field may have a help message
associated with it. The help message is up to 70
characters and is displayed on line 23. Try to make
this message useful for the person doing data entry.
For example: a customer number field may have the
message, "Enter a five digit number to find the
customer".
Page 22
Calculated Fields
-----------------
Calculated fields are not real fields but are called virtual
fields. That is, they do not exist in a database file but just
appear on the form and exist only in the memory of the computer.
Their value is obtained from formulas that may have fields,
constants, functions and operators.
Calculated Field Definitions
----------------------------
Calculated fields are placed by moving the cursor over to
the desired location and pressing F7. Calculated fields are
defined by the same process as database fields; by answering
a series of questions. The value of a calculated field may
be used by a formula in another calculated field. In order
to reference a calculated field, the field name must be
prefixed by the database name, "CAL_F->". This indicates
that it is a calculated field and that it is in a form (as
indicated by the "F").
Fieldname:
Calculated field names are defined in the same way as
database field names. Calculated fields must have a
field name so that they may be referenced by other
calculated fields.
Calculation type? (S)um (A)verage (H)igh (L)ow (C)ount
(F)ormula:
Six different types of calculated fields are supported
by PRO-dVelBase. They may be divided into two groups:
summary and formula.
Summary Calculated Fields
-------------------------
The summary fields are sum, average, high, low and
count. As its name indicates, these different field
types are summary operators based upon a particular
formula. They are particularly useful in one-to-many
relationships where you would like to determine the
sum, average, high, low or count of a certain column of
numbers or fields.
Formula Calculated Fields
-------------------------
A formula calculation type is not a summary operator.
That is, it does not require that a one-to-many
relationship exist. The formula is entered, as defined
in the appendix. Its value will automatically appear
once the appropriate values that it references have
been entered. This is exactly how a derived field
works but this field is not saved.
Page 23
What is the field type of the calculated field? (C)har
(N)umeric (D)ate:
Calculated fields may be either character, numeric or
date type. Summary fields are always of numeric type
therefore, this question will not even be asked for
summary fields.
==> The default is (C)har.
Is this field hidden?
Calculated fields may be hidden from view. The purpose
of having a hidden calculated field is that it acts
like a temporary variable holding an intermediate
result. Other fields may then reference this field for
further calculations.
==> The default is NO.
What is the length of this field?
The field length of calculated fields represents the
resulting display width on the screen. For numeric
calculated fields, the maximum field length is 19.
How many decimal places are there?
The decimal places may be set for numeric calculated
fields, therefore, this question only appears for
numeric calculated fields. The maximum number of
decimal places is 14. Please ensure that the display
width is greater than the number of decimal places.
Formula:
Formulas have a different meaning in summary fields
compared to formula fields. Summary fields are used
when there is a one-to-many relationship. The formula
for each of the one-to-many links is evaluated first
before the summary operator is performed.
Sum - takes the sum of the results of the formula for
each linkage on a one-to-many relationship.
High - finds the highest value of the results of the
formula for each linkage in a one-to-many relationship.
Low - finds the lowest value of the results of the
formula for each linkage in a one-to-many relationship.
Average - finds the arithmetic means of the results of
the formula for each linkage in a one-to-many
relationship.
Count - formulas for count must be logical expressions
that evaluate to either TRUE or FALSE. The count field
will simply count the number of TRUE results.
Page 24
Formula - formula calculated fields do not cross lines
in one-to-many relationships. They are evaluated only
for the current line. For example, a formula
calculated field evaluating a line total will just use
the values on that line and not any other line.
Editing Text and Fields
-----------------------
Field Identification Characters
-------------------------------
Once the fields have been placed, you will notice some
unusual characters at the beginning of each field display.
These are called field identification characters and are
used internally by PRO-dVelBase to locate fields. They will
not show up on your data entry forms once you have finished
designing your forms. They are also helpful for you to
quickly identify which fields are the same in a one-to-many
relationship.
Moving Text and Fields
----------------------
Once fields and text have been placed on the form, their
locations may be altered. The process of moving fields and
text is similar to that in any other text editor. When in
the insert mode, fields and text may be pushed to the right
by typing blank spaces. Fields and text may be pulled to
the left by deleting the spaces before them. The DELETE key
will delete text under the cursor and the BACKSPACE key will
delete text before the cursor. Blank lines may be inserted
by pressing ENTER while in the insert mode. This will only
work if the bottom line on the form is empty otherwise
nothing happens. CTRL-Y will delete text (not fields) on
the current line. CTRL-C will center the current line.
Be careful when using these techniques on memo fields. Memo
fields are represented by windows on the form and using
these techniques may break the window up. If this occurs,
you may not be able to save the form. Be sure the memo
field is in the form of a rectangular window after it has
been moved.
Blocking Text and Fields
------------------------
The F3 key is used to block an area of the screen. Move the
cursor over to the start position for blocking. Press F3.
Move the cursor over to the end position for blocking.
Press F3 again. The blocked area will appear in a different
attribute depending upon what type of monitor you have.
This block may then be copied (press F5) or moved (press
F6). Pressing F3 again will unblock the area. Using this
procedure to copy fields is how PRO-dVelBase creates
one-to-many relationships (see Multi-File Forms). You will
not be allowed to move or copy blocks beyond the edge of the
Page 25
screen. You will also be given a warning if the target site
already is occupied. By moving or copying a block to a
target site that is occupied, the previous text or field
will be deleted.
Editing Field Definitions
-------------------------
Field definitions may be changed by simply moving the cursor
over to the field display and pressing F7. The field
definition screens will again re-appear and the answers to
the questions may be changed.
Drawing Boxes
-------------
Boxes may be drawn around important fields as follows. Move
the cursor to the corner of the area you want to box. Start
by pressing ALT-B. A window will open, showing the borders
that you may choose for drawing your box. Select the
appropriate box borders and draw the box using the UP, DOWN,
LEFT or RIGHT keys. Once the box is drawn, press ENTER to
complete the drawing of the box or press ESC to abort the
drawing.
Boxes may be deleted by selecting the box containing no
drawing character and using that to draw on top of an
existing box.
IBM Extended Graphics Characters
--------------------------------
The IBM Extended Graphics Characters (ASCII values greater
than 127) may be placed by pressing ALT-C. Place the cursor
over the location where the character is to be placed. A
window will open, showing the various characters that may be
placed. Select the appropriate character and press ENTER to
place the character or press ESC to abort placing. One of
the purposes of this feature is to allow the placing of the
intersections for the boxes drawn.
Moving to Next/Previous Screen
------------------------------
Text and fields may be placed on up to 5 screens. The
PAGEUP and PAGEDOWN keys will move between various screens.
Deleting Fields
---------------
Fields are deleted by simply placing the cursor over them
and pressing the DELETE key. A confirmation will be asked
first before allowing to proceed. If the cursor is in a
field that is linked to another field, pressing the DELETE
key will first delete the linkage and then the field itself
may be deleted by pressing DELETE again.
Page 26
Multi-File Forms
----------------
The true power of PRO-dVelBase comes from its ability to relate
forms and their underlying database files together easily.
Relating forms allows information to be stored only once thus
saving disk space and facilitating updating of that information.
When you design any kind of a database application, you should
first try to design all of your basic forms and database files
i.e. all forms that only have one database file in them. After
that you may design forms that have multiple database files
related together. This is called the bottom up approach.
Steps to relating forms:
1. Place the cursor over the key field that you would to relate
to another form. This field must be of char type or else it
cannot be used as a key.
2. When the cursor is in the field, press ALT-F7 and a window
will appear with all the forms previously created in the
current directory. Select the one that you would like to
relate to.
3. Next a window appears with all the fields in that form that
are indexed. Select the key field of that child database
file and press ENTER. This links the 2 database files
through their key fields.
Note: The key field in the foreign database file must be
indexed before this can occur. If it has not been
indexed, you must go back to the primary form
containing that field and index the field first.
Next you will see the Foreign Database Relationship Definitions
screen and questions will be asked that define the relationship.
Foreign Database Relationship Definitions
-----------------------------------------
(L)ink or (C)opy fields?
There are two types of operations that may be done:
linking or copying.
When databases are linked through key fields, the
editing of fields from a child database will change
them in the child database. The fields of the child
database do not exist in the parent database.
Copying is when the fields of the child database also
exist in the parent database. The values of matching
fields from the child database are copied directly into
the corresponding field in the parent database.
Generally, linking should be chosen because it will
Page 27
reduce the duplication of redundant data. For example,
it is not necessary to store a person's name and
address in 2 different databases when storing that
information into one database will be sufficient.
Secondly, by linking, changes that are made in one
database will be reflected in all the databases that
are linked to it.
You would use copying of fields if the field values are
to be fixed and not affected by any updates done in the
foreign database. For example, in an invoicing system
where the foreign inventory database has a particular
item at a particular price in time. The price should
be copied over to the invoice database because any
price increases in the inventory database should not be
reflected in the invoice database after the invoice has
been generated and the item shipped.
Delete linked record if primary record deleted? (Y/N)
Answering YES to this question will cause linked
records to be deleted when the record on the primary
database is deleted. For some linked records you may
not want this to occur. For example, when a customer
record is linked to an invoice record, deleting the
invoice record should not delete the customer record.
In other situations, deletion of linked records should
occur. For example, when an invoice record is linked
in a one-to-many relationship to a group of details
records (each record containing the details of a given
invoice transaction), all the details records should be
deleted automatically when the invoice record is
deleted. This process is called referential integrity.
Is this a one-to-many link? (Y/N)
Only 1 one-to-many link is allowed per form. Up to 10
links may occur on any one form. A one-to-many link is
used in situations where you would like to link one
record in the primary database to many records in a
foreign database. PRO-dVelBase allows you to create a
link with up to 20 records on the many side of the
relationship. This may be used in an invoicing system
where a customer may buy more than one item but the
number of items is not known at the time of database
creation.
Reject if value does not exist in the foreign database?
This allows a check to be made if a particular value
exists in a foreign database. Answer YES if you would
like any non-existent value to be rejected. This may
be used in an inventory system to ensure that a
particular item is present in the inventory database
before it can be accessed.
After the key field has been defined, place the subsequent fields
Page 28
on the screen. This is how you would place them. If you
selected (L)ink fields, move the cursor over to an empty area.
Press ALT-F7. Then select the next field to be transferred over.
Then move to the next area to place another field. Continue this
process until you have transferred all the fields you would like
to transfer. When you have finished, press F10 to indicate that
the process of transferring fields is completed.
If you have selected (C)opy fields, the cursor will only be
allowed to move into other fields that are in the parent database
file. Move the cursor into the first field that you want data to
be copied into. Select ALT-F7 again, then select the field you
would like to be copied from and press ENTER. Continue this
until you have finished. Again, press F10 to signify that you
have completed this task.
If you have set up a one-to-many relationship, subsequent lines
can be created by performing a block and copy. Move the cursor
to the beginning of the area you would like to block. Press F3.
Then move the cursor to the end of the area you would like to
block and press F3 again. Next move the cursor to the area you
would like to copy to. Press F5. Every time you press F5, the
blocked area will be replicated. Continue pressing F5 until you
have reproduced as many lines as needed. Then press F3 again to
unblock the blocked area. By using this technique, you may
create multiple lines and fields for data entry in a one-to-many
relationship. You may only block and copy up to 20 lines as this
is the maximum that PRO-dVelBase handles in a one-to-many
relationship. Any additional lines will be ignored. The key
field does not need to be copied in the block as it only has to
appear once on the form. PRO-dVelBase automatically recognizes
this as a one-to-many relationship and the key field value will
be copied appropriately into each record. In a situation where
you know how many lines are required, this is all that is
necessary. If an unknown number of lines are required, you
should design a scroll window.
Scroll Window
-------------
A scroll window is designed around a one-to-many
relationship and it allows the records in that area to be
scrolled up and down. This allows the user to enter up to
20 records at a time. To set up a scroll window, place the
cursor before the first field of a one-to-many relationship.
Press ALT-S and a window will open. Move the end of the
window to the bottom of the area that you want scrolled and
press ENTER again. You will notice two small field
identification characters appear in the corners of the
window. These characters will not appear on the data entry
screen. They are simply used by PRO-dVelBase to identify
the boundaries of the scroll window. On the data entry
screen, an up arrow will appear in the upper scroll field if
the window has been scrolled up and a down arrow will appear
Page 29
in the lower scroll field if the window has been scrolled
down and there are more records beneath the scroll window.
A scroll window may be deleted by moving the cursor to one
of the field identification characters and pressing DELETE.
Steps to Removing Relationships
-------------------------------
Once a relationship or series of relationships have been
defined, how do you remove them? Removal of relationships
is quite simple.
Find the key field that relates it to another form. The key
field is indicated by having the names of the fields
flashing when the cursor is in it.
With the cursor in the field, press the DELETE key. A
confirmation message will appear before the relationship is
removed. All fields in the related database file and
secondary or tertiary files, etc. will also be removed.
In one-to-many relationships, the effects of the DELETE key
is slightly different. The relationship definition is
stored in the first occurrence of a key field on the form.
If the cursor is in the first occurrence of a key field and
the DELETE key is pressed then the relationship is removed
and all related fields will be removed. If the cursor is in
subsequent occurrences of a key field then deletion will not
remove the relationship but will remove all the related
fields from that occurrence on. The relationship will still
be maintained in previous occurrences of the key field.
Saving a Form
--------------
Upon completion of the form, press F10. This performs a validity
check on the form. If any errors have occurred, a message will
appear and appropriate actions must be taken to correct them
before the form may be saved. If there are any errors in any of
the fields, the cursor will usually drop to that field. Refer to
Appendix C: Warning and Error Messages, for the meaning of these
messages. At this point, a descriptive file name may also be
given for the form. A database file is automatically created
when the form is saved.
B. Form/Modify
==============
To modify a form:
1. Use Form/Select to select the form you would like to modify.
2. Use Form/Modify to start modifications. The form will be
displayed, allowing you to modify the form along with the
underlying database. Field definitions may be changed by
Page 30
moving the cursor over to the appropriate field and pressing
F7. Any definition may be altered except for the field
name. The only way that a field name may be altered is by
deleting the field and creating a new field. Please note
that by doing this any data already entered into that field
will be deleted. The Foreign Database Relationship
Definitions may be altered by moving the cursor over to the
key field and pressing ALT-F7.
3. Press F10 to save the modified form.
Note: If the fields in the primary database file associated
with a form are modified (fields deleted, fields added,
field lengths changed or field types changed), the
changes will also occur to the database. If a field is
shortened, data values may become truncated. The
original database files are stored as backup database
files with the extension .BAK and if there is any
associated memo field, it will have the extension .TBK.
C. Form/Select
==============
When using the Form/Select command, you are simply choosing the
form that you want to use for subsequent operations. Examples of
such operations may include data entry, querying, report
generation, label generation and mail merge.
The Form/Select command will open the database file(s) that have
been defined in the form. All other objects and commands in the
menu are dependent upon the selected form. If no form is
selected, then you may not access any other object on the main
menu. Thus, before any other operations are performed, you must
select a form.
Error checking automatically occurs at the time of selection.
All the formulas are checked along with the various fields. If
there are any errors, a message will appear and appropriate
action must be taken to correct the problem before the form can
be executed. The most common error occurs when a field has been
deleted or modified. Related forms that reference this field
will then generate an error unless they are updated. The form
may be UNEXECUTABLE and/or UNMODIFIABLE depending upon the nature
of the error. Also the form name will be in lower case in the
work area if an error occurs. Refer to the appendix for a
complete list of error messages and appropriate steps to correct
them.
Note: You must select the form that you want to use from a
directory. This directory will only list the forms
that you have previously created and saved.
If there are no forms created and you try to select a
form, you will get an error message. To create your
form, see Form/Create.
Page 31
To Select a Form:
1. Choose Form/Select.
At this point a window will open and a directory of the
existing forms will be displayed. The description of each
form is also shown. This window may not be able to show all
the forms that you have created. However, by using the UP
or DOWN keys you may scroll through the entire list of
forms. To alert you to the fact that there are more forms
on your list, you will see arrows along the border of the
window, pointing in the direction that you may scroll.
2. Place the cursor bar over the form that you want to select
and press ENTER.
At this point, you have chosen the form that you want to use.
Your work area will indicate the name and description of the form
that you have chosen. It will be displayed beside Selected Form
towards the top of the work area. Also note that the data
directory will be displayed at the bottom of the work area. This
indicates the directory that your form resides in. Now that you
have selected your form, you may perform various operations on
it.
D. Form/Execute
===============
The Form/Execute command is used for data entry and editing of
data.
When you select Form/Execute, a blank data entry screen will be
displayed and new data may be entered. If some data is already
entered, you will be at the end of the file (EOF).
The bottom four lines of the screen make up the information area.
The first line is the database information line. Reading from
left to right, the information identifies the:
1. Field you are reading from. The information is in the form
of: database file name -> field name.
2. Field you are writing to.
3. Current record number in the primary database file. The
notation is in the form of: current record/total records.
If you are at the end of the file, the record you are at
would be EOF. This means that data entered into the form
will be appended (i.e. added to the end of the file.)
4. The word "Del" if the current record is marked for deletion.
In most cases, the database information line will indicate that
the field you are reading from is identical to the field you are
writing to. However, if the cursor in on a key field that
relates to a secondary database file, this is not the case.
The second line in the information area is the message line. It
provides messages as necessary, to prompt you for further action.
The third line in the information area is the active keys line.
Page 32
Not all the active keys are shown but only the main ones. Any
active keys that are CTRL or ALT keys may be displayed by
pressing down the CTRL key or the ALT key. The display for the
active keys line will change. The active keys of the
Form/Execute command are as follows.
================================================================
Key Action
----------------------------------------------------------------
ENTER or TAB finished entering data into a field and moves
cursor to next field.
SHIFT-TAB moves the cursor to the previous field.
RIGHTKEY moves the cursor one position to the right in
a field. If the cursor is at the end of a
field, it will jump to the next field.
LEFTKEY moves the cursor one position to the left in
a field. If the cursor is at the start of a
field, it will jump to the previous field.
UPKEY moves the cursor up to the field on the
previous line.
DOWNKEY moves the cursor down to the field on the
next line.
HOME moves the cursor to the start of a field.
END moves the cursor to the end of a field.
BACKSPACE deletes the character before the cursor.
DELETE deletes the character under the cursor.
INSERT toggles between insert mode and overwrite
mode.
CTRL-C recalculates calculated and derived fields.
CTRL-D marks a record, that has been saved, for
deletion. However, if you use CTRL-D while
appending a record and you have not saved the
record yet, the record will be cleared and
not saved. Also, if there are any linked
records, they will also be marked for
deletion if the question, "Delete linked
record if primary record deleted?", was
answered YES. Pressing CTRL-D on a record
already marked for deletion will undelete it
and remove the mark.
CTRL-L prints the current record based on the
selected label. This will work only if a
label has been previously selected.
CTRL-M prints the current record based on the
selected mail. This will work only if mail
has been selected for purposes of a mail
merge.
CTRL-R prints the current record based on the
selected report. This will work only if a
report has been selected.
CTRL-U undo key. Any changes made to a record will
be undone as long as it has not been saved.
CTRL-Y clears the data in the field where the cursor
is at.
Page 33
CTRL-HOME moves to the first screen of the first
record.
CTRL-END moves to the append record.
F1 context sensitive help.
F2 used to view an underlying database file,
whether it be the primary or foreign
database. The database, which is being read
from, will be displayed in table view in
sequential order.
ALT-F2 used to view the database file being read
from in indexed order in table view based
upon any index.
CTRL-F2 used to view the underlying database file in
indexed order in table view based upon the
current index and field value.
F5 used to bring up pre-set data in a field
whose value has been defined as a copied,
defaulted or sequential.
F8 brings up the search menu.
F10 saves the current records and moves to the
next one.
PAGEDOWN moves to the next screen of the current
record or the first screen of the next record
if the current screen is the last screen of
the current record.
PAGEUP moves to the previous screen of the current
record or the last screen of the previous
record if the current screen is the first
screen of the current record.
CTRL-PAGEUP moves to the first screen of the previous
record.
CTRL-PAGEDOWN moves to the first screen of the next record.
ESC aborts the process of data entry and returns
to the main menu.
=================================================================
Appending and Editing Records
-----------------------------
Upon execution of a form, PRO-dVelBase places the record counter
at the end of file (EOF). At this position records will be added
(appended) to the primary database associated with the form.
The natural direction of cursor movement is from left to right
then top to bottom. The UPKEY moves the cursor to the closest
field on the prevous line while the DOWNKEY moves the cursor to
the next line. The cursor will jump over fields that are
write-only or calculated fields.
The allowed data in a field is determined by how the field was
defined.
If you enter a value into a key field and this value is present
in the related database, then the fields of that related database
Page 34
will be automatically retrieved and displayed on the form. If it
is not present, then the field values entered will be appended to
the related database. If the relationship was defined as being
copied instead of linked, this will not happen and the field
values will only be stored in the parent database.
Upon completion of the last field on a form, the record(s) will
be automatically saved and the record counter incremented.
Remember that if a form is a multi-file form, all updated records
will be saved in an all or none fashion. If the form is aborted
by pressing ESC before it is finished, all the field values will
not be saved. This process is called a transaction.
If you would like to save a form before all the fields are
filled, press F10. F10 causes a save to be made unless the
cursor is in an one-to-many area (where it means go to the next
field beyond the one-to-many area) or if in a memo field (where
it means go to the next field). Pressing F10 will evoke error
checking to ensure all required fields have data in them and all
error formulas evaluate to be TRUE.
Previous forms may be viewed by pressing the CTRL-PAGEUP key (or
just PAGEUP if the form only has one screen). The fields on the
form may then be edited and it will be automatically saved when
the cursor passes the last field on the form or if F10 is
pressed.
If you are using the PAGEUP, PAGEDOWN, CTRL-PAGEUP,
CTRL-PAGEDOWN, CTRL-HOME or CTRL-END keys to move between
different forms and changes are made to the fields, a warning
will be given to indicate that a field was changed on the form
and the option will be given to save the changes or discard them.
No such warning is given if F10 is pressed to save a form. If a
form is being appended and one of these keys is pressed, the
contents of the form is not saved onto the disk but is retained
in memory in a separate buffer. The records must be explicitly
saved by pressing F10 or completing the last field on the form.
Editing Character Fields
------------------------
Character fields appear left justified and may have a
picture present for formatting within the field display.
They are the only field types that allow horizontal
scrolling if the field length is greater than the field
display.
Editing Numeric Fields
----------------------
Numeric fields are displayed right justified within the
display and have the decimal place in a fixed position.
Upon entering a numeric field, the cursor initially drops to
the first position on the left. After the number is
entered, the field is right justified upon exiting the
display.
Page 35
Editing Logical Fields
----------------------
Logical fields have either a TRUE or FALSE value. A TRUE
value is represented by "T" or "Y". A FALSE value is
represented by "F", "N" or a null field value.
Editing Single Key Fields
-------------------------
Single key fields only have one character. The valid
characters depend upon how the field was defined.
Editing Date Fields
-------------------
Date fields are displayed with one of three templates:
"mm/dd/yy", "dd/mm/yy" or "yy/mm/dd". The template is
determined by how the field was initially defined. These
templates indicate which positions the day, month and year
should go. A date field cannot be partially filled.
Editing Time Fields
-------------------
Time fields are displayed with one of four templates:
"hh:mm", "hh:mm:ss", "hh:mmp" or "hh:mm:ssp". The template
is determined by how the field was initially defined. These
templates indicate which positions the hours, minutes and
seconds should go. The "p" in the template indicates that
time is in 12 hour format and an A or P should be entered at
this position to indicate whether the time is am or pm. A
time field cannot be partially filled.
Editing Memo Fields
-------------------
Memo fields are displayed as windows on the form and the
active keys are slightly different in them. If the length
of a memo field is greater than what can fit into the
window, the field may be scrolled vertically in the window.
Page 36
The following table indicates the keys that have a different
action in memo fields than in other fields.
=================================================================
Key Action
-----------------------------------------------------------------
ENTER places a carriage return at the current cursor
location.
TAB moves cursor 10 spaces to the right.
SHIFT-TAB moves cursor 10 spaces to the left.
RIGHTKEY moves the cursor one position to the right. If
the cursor is at the end of a field, it will jump
to the next field.
LEFTKEY moves the cursor one position to the left. If the
cursor is at the start of a field, it will jump to
the previous field.
UPKEY moves the cursor up to the previous line. If the
cursor is at the first line, it will jump to the
field above it.
DOWNKEY moves the cursor down to the next line. If the
cursor is at the last line, it will jump to the
field below it.
HOME moves the cursor to the start of a line.
END moves the cursor to the end of a line.
F10 finished editing the memo field and cursor jumps
to next field.
PAGEDOWN displays the previous window screen.
PAGEUP displays the next window screen.
=================================================================
Editing Fields in a One-to-Many Area
------------------------------------
Data entry in a one-to-many area is similar to data entry in
other fields with a few exceptions. First, pressing F10
will only allow the cursor to jump to the next field beyond
the one-to-many area. Second, if the area is enclosed by a
scroll window, the UPKEY and DOWNKEY will cause the window
to scroll if at the top or bottom. Third, if the cursor is
beyond a one-to-many area and the UPKEY is pressed, the
cursor will jump to the last line that has any field values
entered and not the last empty line. Fourth, calculated
formula fields only evaluate for the current line.
Table View
----------
In table view, each record is shown in a row and the fields are
displayed in columns. All field values are displayed with their
templates except for memo fields, which are only displayed with
the four letter word "MEMO" (if text is present in the field) or
"memo" (if text is not present).
Record numbers are listed down the left hand side. A vertical
Page 37
line separates the record numbers from the fields of the
database. Deleted records are identified by a diamond that is
positioned in place of this vertical line and if the cursor is
over a deleted record the word "Del" appears near the bottom.
Pressing F2 activates table mode for the database file that is
being read from. In most fields, it is the same as the one being
written to. The only field where the read is different from the
write is the key field. PRO-dVelBase was designed in this way to
allow "look-ups" in foreign database files.
When the database is displayed in table mode, you may either view
or edit the database. Initially, you will be in the view mode.
You are not allowed to edit the fields until you use the edit key
(E) to get into edit mode.
The active keys in the table view mode are as shown in the
following table.
=================================================================
Active Keys Action
-----------------------------------------------------------------
HOME moves to the first field.
END moves to last field.
F1 context sensitive help.
F8 brings up the search menu.
PAGEUP scrolls up 20 records.
PAGEDOWN scrolls down 20 records.
UP, DOWN, LEFT,
RIGHT, TAB,
SHIFT-TAB,
CTRL-LEFT,
CTRL-RIGHT moves the cursor in the direction of the
arrow.
CTRL-HOME moves to the first record.
CTRL-END moves to the last record.
CTRL-D marks and unmarks the current record for
deletion. Advances cursor to next record.
E used to enter into table edit mode.
T or ENTER used to transfer the record, which the cursor
is on, into the form.
V used to select which fields should appear in
the table and what order they are to appear
in.
A used to append any records onto the end of
the database.
=================================================================
Altering Table View
-------------------
The following procedure allows you to select the fields that
you want to view and to alter the order in which you view
these fields. This is done in the table view mode.
1. Press V. Two windows are displayed. The left window
Page 38
displays all the fields present in the database. The
right window is initially empty.
2. Place the cursor, which is in the left window, on the
first field that you want view.
3. Press ENTER. A check mark will appear beside the field
name, and this field name will be displayed in the
right window.
4. Place the cursor over the next field that you want.
5. Press ENTER. A check mark will appear beside this
field. Also, this second field will be displayed in
the right window.
6. Continue this process until you have selected all of
the fields that you want to be seen in table view.
7. To alter the order in which the fields appear in table
view, use the RIGHTKEY to move the cursor to the right
window. Locate the field you would like to move and
place the cursor over this field. Press ENTER to lock
the field onto the cursor. Use the UP or DOWN key to
move the field to the position that you would like it
to be viewed in. Press ENTER again to unlock and place
your field into position.
8. If you have selected a field that you want to view in
the table view mode and then decide that you do not
want to view this field, you may remove it from the
view. Place the cursor in the left window over the
field you want removed from the view. Press ENTER and
the field will be removed from the view.
9. Press F10 to save the view or ESC to abandon.
Editing and Appending in Table Mode
-----------------------------------
In the table view, editing fields occurs by pressing E while
appending occurs by pressing A. This allows for editing of
records directly from the table. This has the advantage of
being able to see and edit many records at a time. It has
the disadvantage of not having the changeable field
definitions apply to the fields. While in table edit mode,
only the fixed field definitions apply.
A record is automatically saved after the field on the last
column is filled, if F10 is pressed or if the cursor is
moved to another row.
Page 39
The active keys in table edit mode are as follows.
=================================================================
Active Keys Action
-----------------------------------------------------------------
HOME moves to the start of a field.
END moves to the end of a field.
CTRL-END moves to the last record.
CTRL-HOME moves to the first record.
CTRL-D marks and unmarks the current record for
deletion. Advances cursor to next record.
CTRL-LEFT or
SHIFT-TAB,
CTRL-RIGHT or TAB moves the cursor left or right one field.
ENTER moves the cursor one field to the right.
ESC returns to the table view mode.
F1 context sensitive help.
F8 brings up the search menu.
F10 saves current record.
LEFT and RIGHT moves the cursor left or right within the
field.
PAGEUP scrolls up 20 records.
PAGEDOWN scrolls down 20 records.
UP and DOWN moves the cursor up or down one record.
=================================================================
Indexed Table Mode
------------------
While in the form, the table may also be brought up in
indexed order instead of sequential order. This is done by
pressing CTRL-F2 or ALT-F2. The indexes used belong to the
database being read from. A field value also limits the
records displayed.
CTRL-F2 displays the database being read from based upon the
index of the current field being read from. If no index is
present, an error message will appear. The current value in
the field acts as a filter to limit the records displayed in
table view. If a null value is present, all the records are
displayed. In date fields, records with null date values
are displayed using the field value of "00/00/00".
ALT-F2 allows any index present in the read database to be
used as the primary index. Pressing ALT-F2 will display all
fields in the read database that have an index. One may be
selected and an optional filter value entered to limit the
number of records displayed. Entering a null value for this
filter will cause all the records to be displayed.
The active keys in indexed table mode are exactly the same
as in the sequential table mode except that appending is not
allowed. Also, if a filter value is used, the search menu
(F8) is not operational.
Page 40
The Search Menu
---------------
It is possible to perform searches while you are using the form,
table or query. If the search menu may be called up, you will
see the search key (F8 key) listed as one of the options on the
active keys line.
Press F8 to display the search menu. The following 5 submenu
commands are on this menu: Goto, Search, Search & Replace,
Search & Delete, Search & Undelete.
Goto
----
Goto is one of the submenu commands of the search menu. It
allows you to move directly to any record number you desire.
The Goto command is executed as follows:
1. Press F8 to bring up the search menu.
2. Select Goto.
3. Type the record number you want to go to.
4. Press ENTER.
Search
------
To perform a search:
1. Press F8 to bring up the search menu.
2. Select search. The fields of the database will be
listed in a window.
3. Select the field that you would like to do the search
on.
4. Enter the search string, that is, the value you would
like to search for. If null string is used for the
search string, then all records will be retrieved.
Searching for null dates is done by using the search
string "00/00/00".
5. Next you will see the following prompt, "Ignore case?
(Y/N)". For a case sensitive search, type N. For a
case insensitive search, type Y.
Note: Case sensitive or case insensitive searches
may only be done in a character or a single
key field.
A case sensitive search means that if the data you are
searching for is written in all upper case letters, you
should use upper case letters in your search string.
Basically, you enter the search string using the same
case (lower, upper, or mixed) as the data was
originally entered into the form. Thus, if the data is
in lower case and the search string is in upper case,
the search string will not be found.
A case insensitive search means that the search will be
conducted using the letters that you have entered,
Page 41
ignoring whether it is in upper or lower case.
However, if you have created an index in which you
ignored the case and you use this index for doing your
search, then the search will be case insensitive.
6. If you are doing a search in a field that is indexed,
you have the option of using the index to perform the
search. You will see "(I)ndexed or (S)equential
search?" Enter either I or S depending on the type of
search you want.
Using the index to perform the search will be much
faster. Remember that an index is a table of record
numbers arranged in sorted order to permit rapid access
to a specific record. Therefore, when you use an index
to do your search, the search will not proceed in the
order in which the record appears in the database.
Note: If you decide to do a sequential search
instead of an indexed search, you will be
allowed to choose whether you want to ignore
the case while doing the search.
A search will be made until the first field is found that
contains your search string. For example, using a search
string of "smi" in the surname field will find all the
surnames that start with "smi", such as smith, smitty or
smithers. If you want an exact search, enter a space after
the string set.
When the first field that contains your substring is found,
PRO-dVelBase moves this record to the top of your screen and
your cursor will be on this field if in table mode. On the
message line, the third line from the bottom of the screen,
you will see the prompt, "Continue? (Y/N)". Press Y if you
want to continue. Press N if you do not want to continue.
For an exact search:
1. Type your search string.
2. Type a space after your search string. If you do not
type a space at the end, then the search will bring up
all the occurrences of the search string. For example:
Smith(SPACE) will find Smith
Smith(without a space) will find Smithers,
Smithen, Smith
3. Press ENTER. Your cursor will highlight the record
that contains your search string.
Note: If a null string is used, then the search will
bring up the entire database, one record at a
time.
Page 42
Search & Replace
----------------
This command is a submenu command of the search menu. It is
similar to the search command but it also allows you to
replace all the search strings with a value derived from a
replace formula.
Perform your Search & Replace command as follows.
1. Press F8 to bring up the search menu.
2. Select Search & Replace. The fields of the database
will be listed in a window.
3. Select the field that you would like to do the search
on.
4. Enter the search string, that is, the value you would
like to search for. If the search string is a null
string (no value) then this becomes a global operation
and all of the records are changed. Press ENTER.
5. Next you will see the following prompt for character
fields, "Ignore case? (Y/N)". For a case sensitive
search, type N. For a case insensitive search, type Y.
6. Enter the replace formula, that is, the value you would
like to see in place of your search string. The
formula must evaluate out to the same type as the
search string. The replace formula has a maximum
length of 255 characters and pressing CTRL-Z allows it
to be edited in a window. Press ENTER.
7. As a precaution, you will also be asked, "Verify each
change? (Y/N)". Press Y and you may verify each
change. The search will stop at each spot where a
record is found and it will ask whether you want to
replace that field or not. Also the new value to
replace the current field value will be displayed as a
confirmation. If you answer NO to the above question,
all found records will be updated without confirmation.
You will not be asked whether you want to replace that
field or not.
Note: When replacing an exact word, include a space
as part of the search string. Otherwise, the
replace string will replace any occurrence of
your search string.
e.g. To perform a global update on a COST field, increasing
each field by 10%, the following may be done. Use a
null string as the search string in the COST field and
the replace formula is COST * 1.1.
Search & Delete
---------------
To search and delete a record:
1. Press F8 to bring up the search menu.
2. Select Search & Delete. The fields of the database
will be listed in a window.
3. Select the field that you would like to do the search
Page 43
on.
4. Enter the search string, that is, the value you would
like to search for. Press ENTER.
5. Next you will see the following prompt, "Ignore case?
(Y/N)". For a case sensitive search, type N. For a
case insensitive search, type Y.
6. As a precaution, you will also be asked, "Verify each
change? (Y/N)". Answer YES and you may verify each
change. The search will stop at each spot where a
record is found and it will ask whether you want to
delete that record or not. If you answer NO to the
above question, the entire database will be updated
globally. You will not be asked whether you want to
delete that record or not.
Note: When searching for an exact word, press the space
bar to include a space as part of the search
string. Otherwise, the search find all
occurrences of your search string.
When you delete a record, you are simply marking it as being
deleted. Records that you have marked for deletion will
have the word "Del" in the right lower corner when the
cursor is over them and a diamond will appear beside the
record number on the left side if in table view. In order
to remove deleted records from the database, the database
packing function must be performed. However, once you have
packed your database you will not be able to undelete a
deleted record.
Search & Undelete
-----------------
This function works in a similar way as the Search & Delete.
The Search and Undelete function simply unmarks a record
that was previously marked for deletion. This command will
only work if you have not yet packed the database containing
the deleted records.
E. Form/Unselect
================
Form/Unselect is the opposite of Form/Select. Form/Unselect
simply removes a given form from the work area. Also all
associated objects in the work area are also unselected.
F. Form/Delete
==============
This submenu command is used to delete forms. When it is
selected, you will be asked if you would also want to delete all
the associated data files with the form and all the associated
files in the catalog. The associated files in the catalog
include any queries, reports, labels, mails, appends and posts
that were created with the currently selected form. The default
Page 44
to these questions is NO. Deleting the form only will only
delete the .SCN, .FLD and .CAT files. Deleting the data files
will delete the .DBF and .DBT files. Please be careful if you
select this because there may be alot of data present in these
files that you may not want deleted.
Page 45
Chapter 3: Query
=================
A query is a request by a user for information from the database.
This request lays out the limits, conditions or criteria that
needs to be met in order for data to be found and displayed.
Therefore, the query acts as a filter. It will filter out as
well as sort the appropriate records for subsequent operations.
These operations may include the report generation, mail merge,
label generation, append and post.
There are eight submenu commands under the query menu. They
include: Select, Execute, Create, Modify, Unselect, Delete, Add
to Cat. and Remove from Cat.
Whenever a query is created, it is specific to a given form.
Therefore, the form must be selected before a query may be
created. Like the form, a query must be created and saved before
it may be selected and executed.
Note: You only create your query once and save it.
Thereafter, you just need to select it whenever you
want to execute it. You may alter the query after it
has been saved. This is done using the Query/Modify
command.
A. Query/Create
===============
This command is used to create a query. All queries are specific
to a given form. Therefore, before you may create your query, if
you have not already done so, select the form that your query
will be associated with.
To Create a Query:
1. Select Query/Create.
2. Give this query a name. The name must be a dBASE name and
it must follow dBASE conventions. Please refer to Appendix
A: dBASE Naming Conventions. Try to make the name as
descriptive as possible. For example, a query of all the
names between the letters A to M might be called NAME_A_M.
3. Press ENTER. You will see a screen with all the field names
across the top. The field names are written in the
following format: database file name -> field name. This
is done because for any given form, there may be fields that
come from more than one database file. This is usually the
case if your form is a multi-file form and consists of
databases files that are related.
The first line under the field names is the line that indicates
the numerical view order of selected fields. The next line
indicates the numerical sort order of the fields.
Page 46
The following tables indicate the active keys on the query
editor.
=================================================================
Active Key Action
-----------------------------------------------------------------
E or ENTER moves cursor to edit line.
RIGHT moves the cursor bar right one cell.
LEFT moves the cursor bar left one cell.
S used for sort order.
V used for view order.
UP moves the cursor bar up one cell.
DOWN moves the cursor bar down one cell.
HOME moves the cursor bar to the last field.
END moves the cursor bar to the first field.
ESC abandons the query operation.
F9 displays a list of the field if on edit line.
ALT-F9 displays a list of the functions if on edit
line.
CTRL-F9 displays a list of the operators if on edit
line.
F1 context sensitive help.
F10 saves the query.
================================================================
Query Editor
------------
The query method used by PRO-dVelBase is a query-by-example.
The table consists of 10 rows going down and the number of
columns is equal to the number of fields in the form. We will
refer to the area in which you enter the conditions as cells.
In this table, the query is created by placing conditions that
must be met before a record will be filtered. Conditions are
placed in each cell and all these conditions must be evaluated as
being TRUE before the transaction will be included in the query.
A condition consists of a relational operator and an expression.
Here are the relational operators that will be accepted:
=================================================================
Symbol Meaning
-----------------------------------------------------------------
= Equal to
<> or # Not Equal to
< Less Than
> Greater Than
<= Less Than or Equal To
>= Greater Than or Equal To
$ Contains
=================================================================
Page 47
An expression is a string that contains a sequence of operators,
functions, field names and constants. All expressions evaluate
to a specific type, such as numeric, character, date or logical.
Therefore, field names and constants used in an expression must
be of the same type. For example, you may add a numeric field
only to a numeric field. To further clarify this point, the
condition to query a surname field must contain an expression
that returns a character type. An expression that returns a
numeric type is not acceptable.
Single key and time fields are considered to be equivalent to the
character field type.
It is not possible to query a memo field. Any query conditions
placed in a memo field will simply be ignored.
Multiple AND conditions may be placed on the query table. All
conditions are on the same row. For example, if you want to
search for all the Smiths living in Washington, then in the
SURNAME cell, the condition would be ="Smith". In the CITY cell,
the condition would be ="Washington" and these 2 conditions would
be on the same line. This would retrieve a record or records
that have the surname Smith and the city name Washington.
Multiple OR conditions are placed going downwards. For example,
the search of all the records in which the surname is equal to
Smith or Jones. The conditions would be placed in the SURNAME
cell with the condition ="Smith" on line 1 and ="Jones" on line
2. For characters, the search is case sensitive.
To perform a multi-condition AND search on a given field, a "&"
is placed between conditions and the conditions are placed in a
single cell. For example, to find all the surnames greater than
Jones and less than Smith, the following conditions would be
entered into the SURNAME cell: >"Jones" & <"Smith". The "&"
character is reserved for this purpose and cannot appear in the
condition for any other reason.
If a condition does not have anything before the operator,
PRO-dVelBase assumes that the field name of the current cell is
to be used in the expression. If anything is present before the
operator, then PRO-dVelBase will evaluate the condition as a
complete expression. For example, if the expression,
SUBSTR(SURNAME,2,2) = "on", was used then all surnames whose
second and third letters have "on" (such as Jones, Bones, Bonn)
will be found. This expression may be placed in any cell and
evaluated directly because the expression, SUBSTR(SURNAME,2,2),
occurs before the equal operator.
With this query-by-example method, very complex queries may be
created and saved. Upon execution of the query, all the records
that satisfy these conditions will appear in table view.
Note: For a form that has a one-to-many relationship, the
Page 48
query will only be applied to the first record of the
one-to-many relationship. In order to query all the
records of a one-to-many relationship, another form
must be used that reverses the link so that a
many-to-one relationship exists.
To Select Fields for Viewing
----------------------------
The following procedure allows you to select the fields that you
want to view and to alter the order in which you view these
fields.
1. Press V. Two windows are displayed. The left window
displays all the fields present in the database. The right
window is initially empty.
2. Place the cursor, which is in the left window, on the first
field that you want view.
3. Press ENTER. A check mark will appear beside the field name
and this field name will be displayed in the right window.
4. Place the cursor over the next field that you want.
5. Press ENTER. A check mark will appear beside this field.
Also, this second field will be displayed in the right
window.
6. Continue this process until you have selected all of the
fields that you want to be seen in table view.
7. To alter the order in which the fields appear in query view,
use the RIGHTKEY to move the cursor to the right window.
Locate the field you would like to move and place the cursor
over this field. Press ENTER to lock the field onto the
cursor. Use the UP or DOWN key to move the field to the
position that you would like it to be viewed in. Press
ENTER again to unlock and place your field into position.
8. If you have selected a field that you want to view in the
query and then decide that you do not want to view this
field, you may remove it from the view. Place the cursor in
the left window over the field you want removed from the
view. Press ENTER and the field will be removed from the
view.
9. Press F10 to save the view or ESC to abandon.
Once you save your changes, you will return to the previous
screen. Note that the first line indicates the order that you
have chosen for the fields to appear. This order is indicated by
a number under the selected field name. Note that all the field
names are shown across the top of the screen but not all field
names will have a number under them. Only those that you have
selected to be viewed will have a number to indicate the view
order that you have assigned to it.
If no fields are assigned to a query view, then PRO-dVelBase will
display all the fields in the form.
Page 49
To Sort the Fields
------------------
Proceed as follows:
1. Press S. Two windows will open. The left window will
display the field names that you may choose from. The right
window will display the fields that you have chosen.
2. Place the cursor over the field that you would like to sort
by.
3. Press ENTER. A check mark will appear beside the field name
and this field name will be displayed in the right window.
4. Place the cursor over the next field that you want.
5. Press ENTER. A check mark will appear beside this field.
Also, this second field will be displayed in the right
window.
6. Continue this process until you have selected all of the
fields that you want to be sorted by.
7. If you want a sort to be case insensitive, press the SPACE
bar instead. This will place a double arrow beside the
field name instead of a check mark.
8. To remove a field from the sort, place the cursor over the
field name in the left window and press ENTER.
9. To alter the order in which the fields are sorted by, use
the RIGHTKEY to move the cursor to the right window. Locate
the field you would like to move and place the cursor over
this field. Press ENTER to lock the field onto the cursor.
Use the UP or DOWN key to move the field to the position
that you would like it to be viewed in. Press ENTER again
to unlock and place your field into position.
Upon saving your changes, you will return to the previous screen.
The second line indicates the order that you have chosen for the
fields to be sorted.
Note: PRO-dVelBase will only allow you to sort up to 10
fields and their combined lengths cannot exceed 100.
The sort order will also be correct even if the fields have
different field types. The only field that cannot be sorted is a
memo field.
A sort does not physically rearrange the records in a database
file. An index is created and the records will appear to be
sorted when they are printed.
Saving The Query
----------------
Proceed as follows:
1. Review your work on the screen. If you are happy with the
view order, sort order and conditions that you have assigned
for the query, press F10.
2. Give the query file a description. The maximum field length
Page 50
is 40 characters. Try to make this file description as
descriptive a possible. For example, if this query was a
query of all the Smiths living in Los Angeles, simply call
this file description, "All Smiths living in LA."
3. Press ENTER. The query is saved as a file with a .QCF
extension (meaning query condition file).
When you have created a query, you may select it and execute it.
Upon execution, all the records that are evaluated as TRUE, will
be displayed in a table view.
B. Query/Modify
===============
The modify selection on the query menu will allow you to modify
the selected query. The rules for modification are the same as
for creation.
C. Query/Select
===============
When using the Query/Select command, you are simply choosing the
query that you want to use.
Each query is associated with a specific form. Therefore,
PRO-dVelBase will not grant you access to the Query/Select and
Query/Create commands unless you select the form first. If no
form is selected, all of the Query menu selections are turned
off. Once you select your form, PRO-dVelBase only turns on the
Select and the Create submenu commands. Then, when you select
your query, PRO-dVelBase turns on the other Query submenu
commands. However, you may only select a query that you have
previously created and saved.
Query selection places the query into the work area for use.
Error checking occurs also on selection and if an error occurs
the name will be put in lower case and a file description of
UNEXECUTABLE and/or UNMODIFIABLE FILE will be given. If the file
name is present in the catalog but the file does not actually
exist then the message "FILE DOES NOT EXIST" will appear. This
type of error may occur if a file is deleted from the DOS level
instead of using PRO-dVelBase to delete it.
To Select a Query
-----------------
1. Select Query/Select. At this point a window will open and a
directory of the existing queries will be displayed. Note
that the description is also shown.
2. Place cursor bar over the query that you want to use.
3. Press ENTER.
At this point, you have chosen the query that you want to use.
The name and description of the query that you have chosen will
Page 51
appear in the work area.
D. Query/Execute
================
Upon execution of a query, PRO-dVelBase will display in table
view all the records that are evaluated as TRUE.
The method that PRO-dVelBase uses to query a form is that it
evaluates each record and if it is found to be TRUE, its record
number is stored in a separate index file with a .QIF extension
(meaning query index file). If this was the first time this
query was executed or if the databases on the selected form were
updated, then PRO-dVelBase will query the entire database. If
the query had already been executed and no updates made on the
databases, then you will be asked if you want to re-query the
database. The querying process may be paused by pressing SPACE
or aborted by pressing ESC.
The active keys in the query view are exactly the same as those
in the table view except appends are not allowed.
You may also edit any of these records by pressing E. This
allows you to enter the Query edit mode. Editing records at this
point will not update the index therefore the record will still
be displayed even though it may evaluate to be FALSE. A
re-querying of the database is necessary. Pressing Esc will take
you back to the main menu.
In a one-to-many relationship, all the fields in the first
linkage are present. Subsequent records in the relationship will
not display the values present in the parent database file and
the record number is displayed with a ditto (") to indicate that
it is the same as the first linkage. It is not possible to edit
the blank cells in a one-to-many relationship.
E. Query/Unselect
=================
The work area will display the name and file description of the
query that is currently selected. Queries act as filters to
select the appropriate records for subsequent operations. If you
do not want your records to be filtered out, then you need to use
the Query/Unselect command to remove the active query. When you
use Query/Unselect, PRO-dVelBase will resume using all the
records in the form for all subsequent operations.
To clarify this point, suppose you created a query named
NAME_B_M. This query is described as "Customer with Surnames
between B and M". If you have selected this query, the query
name (NAME_B_M) and the file description (Customer with Surnames
between B and M) will be displayed in the work area. If you
decide to print some labels, only the records of the customers
whose surname fall between B and M will be printed. PRO-dVelBase
Page 52
has used the query to filter out the records that you want to
generate labels for. If you wanted labels for all the customers,
then you would simply use the Query/Unselect command to remove
the filter.
F. Query/Delete
===============
This command may only be accessed if you have selected a query.
PRO-dVelBase will display this query in the work area. If you
select the Query/Delete command, the query will be deleted after
a confirmatory message.
G. Query/Add to Cat.
====================
When a query is created, it is automatically added to a catalog.
This catalog is the file that contains the names of related
operational files, such as query, report, mail, label, append and
post, for a selected form. There is one catalog for each form.
All queries that were created under a particular form would be
listed in the catalog for that form. This would keep the
operational files of one form separate from the operational files
of another form.
To Add a Query to a Catalog
---------------------------
Proceed as follows:
1. Select Query/Add to Cat. A window will open to display a
list of all the queries that are present on the current data
directory.
2. Place your cursor over the query you would like to add.
3. Press ENTER. A window will open to allow you to enter a
file description.
4. Enter a brief file description. PRO-dVelBase will permit
you to enter up to 40 characters for your file description.
5. Press ENTER.
You have now added your query to the catalog. If you select
Query/Select, you will see all the queries that are in the
catalog.
H. Query/Remove from Cat.
=========================
This command is used to remove a specific query from the catalog.
When you remove the query from the catalog, you are not deleting
it from your hard disk. Rather, you are simply removing from it
from the catalog so that it will not be displayed or used.
Page 53
To Remove a Query from the catalog
----------------------------------
Proceed as follows:
1. Select Query/Remove from Cat. You will see the prompt, "Are
you sure? (Y/N)"
2. Press Y if you are sure that you want to remove it.
Otherwise, press N. If you pressed Y, you would have
removed your query from the catalog.
Page 54
Chapter 4: Report
==================
A report may be defined as a document produced from all of the
records or a subset of the records from a selected form. If a
query filter is selected, this will limit and will also sort the
records to be printed.
There are eight submenu commands under the report menu. They
include: Select, Execute, Create, Modify, Unselect, Delete, Add
to Cat. and Remove from Cat.
A. Report/Create
================
This command is used to create a report.
To create a report:
1. Select Report/Create.
2. Give this report a unique name. This name must follow the
dBASE naming convention as it will be a file name. If you
are not familiar with these conventions, refer to Appendix
A: dBASE Naming Conventions.
The Report Definitions screen will now appear. This screen
consist of a series of questions regarding the report as a whole.
Number of columns:
The first question asked is number of columns. On a
standard printer this will generally be 80. If you have a
wide carriage printer or if you are printing in condensed
mode, you may increase the number of columns in the report.
The range for the number of columns is between 40 and 255.
==> The default is 80.
Number of rows:
The next question is number of rows. For a standard
printer, this will be 66. The range for the number of rows
is between 20 and 100.
==> The default is 66.
Maximum number of records per page:
You may limit the number of records printed per page of the
report. On certain preprinted forms, only a certain number
of records may be printed per form. The range for this is
between 0 and 99. If 0 is selected, then PRO-dVelBase will
print out as many records as will fit on the page.
==> The default is 0.
Page 55
Continuous paper? (Y/N)
If you will be using continuous paper, answer YES. If NO,
you will be prompted to insert a new piece of paper after
each page is printed.
==> The default is YES.
Print blank records? (Y/N)
If there are blank records in the database file, should
these be printed? Generally you will not want blank records
printed.
==> The default is NO.
Print deleted records? (Y/N)
If records have been marked as deleted, should they be
printed? Generally you will not want deleted records to be
printed.
==> The default is NO.
New page after each group? (Y/N)
PRO-dVelBase is able to sort the database information by
groupings. If you would like each grouping to be on a page
of its own, then answer YES.
==> The default is NO.
Prevent isolated group header? (Y/N)
Group headers are printed at the beginning of each new
group. If you want to prevent a group header from appearing
by itself without its associated table, then answer YES to
this question.
==> The default is YES.
Name of Printer File? (A-Z)
Printer files are created when a printer is defined. These
are given the names A to Z. PRO-dVelBase automatically
assigns a .PRT extension to them. Select the appropriate
printer that you want this report printed under. Press F9
to display all the printer files that have already been
created.
==> The default is A.
Printer Port (A) LPT1 (B) LPT2 (C) LPT3 (D) COM1 (E) COM2:
PRO-dVelBase allows printouts to occur through any of 3
parallel ports or 2 serial ports. They are numbered as
LPT1, LPT2, LPT3, COM1, COM2 respectively. Generally,
output will be through LPT1 but please check the
configuration of your computer. You may also allow
different reports, labels or letters to be printed through
Page 56
different ports. For example, an invoice report may be
printed out through a printer connected to LPT1 while a
label printed out through a printer connected to LPT2.
==> The default is (A) LPT1.
If a serial port (COM1 or COM2) is selected, the next series of
questions will appear.
Baud rate (A) 300 (B) 600 (C) 1200 (D) 2400 (E) 4800 (F) 9600:
This indicates how fast the output through the serial port
will be. The selections are 300, 600, 1200, 2400, 4800,
9600. Check your printer manual for these rates.
==> The default is (F) 9600.
Parity (A) Odd (B) None (C) Even:
==> The default is (B) None.
Stop bits (1-2): Stop bits may be 2 or 1.
==> The default is 1.
Data bits (7-8): Data bits may be 7 or 8.
==> The default is 8.
After you have answered the report definition questions, you will
see the report editor. If you want PRO-dVelBase to bring up the
questions again, you may press ESC. This will take you back to
the report definitions screen.
Report Editor
-------------
The report editor is a full screen editor and operates through
the "band" method. There are 4 different types of band: report
band, page band, 5 group bands and a table band. The bands are
laid out symmetrically so that there are an equal number of bands
on the top as well as the bottom. The top group of bands are
called the header bands. The bottom group of bands are called
the footer bands.
Page 57
The following table shows how each band works.
=================================================================
Contents Within How it Will be Printed
-----------------------------------------------------------------
report header band printed once only at the beginning of
the report.
report footer band printed once only at the end of the
report.
page header band printed at the top of each page.
page footer band printed at the bottom of each page.
group header band printed at the beginning of each group.
group footer band printed at the bottom of each group.
table band printed in the body of the report
itself.
=================================================================
Note: The contents of each band may be text and/or fields.
Text information is printed exactly as is while fields
are printed according to their value at the current
record.
The bands are initially set with one space in the report bands,
page bands and the table band. The group bands are closed.
Bands may be opened or additional spaces inserted by pressing
ENTER while in the INSERT mode. The maximum number of spaces
allowed in the bands is determined by the number of rows defined
per page.
Bands may be closed by pressing CTRL-Y while the cursor is in the
band and removing the lines.
Field Placement
---------------
There are 3 different kinds of fields that may be placed on
reports. They are database, calculated and system fields. This
differs from forms, which only have 2 kinds: database and
calculated.
1. Database fields are fields that come from a database file.
2. Calculated fields are virtual fields that are evaluated from
formulas.
3. System fields will print current date, time, record number,
record count or page.
The following are steps to place a field:
1. Move the cursor to the spot where you would like to place
that field.
2. Press F7, select the kind of field to be placed and answer
the questions on the Report Field Definitions. Again, as in
the form, the types of questions will depend upon what kind
of field is being placed and how the previous questions were
Page 58
answered.
Filename->Fieldname:
Select from the list which field to place. If this field
has never been defined, the list will appear automatically
but if it has previously been defined, press F9 to view the
fields. This question only appears for the placement of
database fields.
Fieldname:
This question only appears for the placement of calculated
fields. Calculated fields must be given a unique fieldname.
All calculated fields on a report are given the database
name "CAL_R". This allows them to be accessed in formulas
by other calculated fields.
Calculation type?
(S)um (A)verage (H)igh (L)ow (C)ount (F)ormula: These
calculation types apply for calculated fields and have
similar meaning to the corresponding types in forms. The
first five types are summary calculated fields.
Their exact effect depends upon which band they are placed
in. Placing a summary field in the table band will only
summarize the records in the table band if a one-to-many
relationship is present. Placing a summary field in any of
the footer bands will summarize the records for that
particular group, page or the entire report. A formula
calculated field placed in the table band evaluates each
record separately in a one-to-many relationship.
Also, calculated fields that reside in any footer band can
only reference other fields that either reside on the same
band or in the table band. They cannot reference any fields
that reside in any other footer band. If they do,
inaccurate values may result.
Formula:
Formulas are used for calculated fields and the effects of
formulas differ depending upon the calculation type. In
Sum, Average, High and Low calculated fields, the formula is
first evaluated for each record then the appropriate summary
operator is performed. In Count, the formula must evaluate
to a logical TRUE or FALSE. If it evaluates to TRUE then
the record is included in the count. In formula calculated
fields, the evaluated results of the formula are displayed
directly.
What is the field type of the calculated field? (C)har (N)umeric
(D)ate:
Formula calculated fields can also have a type. The result
of the calculation may either be character, numeric or a
date.
Page 59
Is this field printable? (Y/N)
This question is asked for calculated fields, making it
possible to hide them from printing. This produces the same
effect as hidden calculated fields in forms and they act as
temporary variables for calculations involving other fields.
==> The default is YES.
What is the length of this field?
Calculated fields have to be given a length. This is the
length that will be printed. Using calculated fields makes
it possible to place long database fields on the report by
decreasing the field length. This will result in a
truncation of the field value.
How many decimal places are there?
Numeric calculated fields require the number of decimal
places be set. The maximum number of decimal places is 14.
Picture:
A picture dictates the format for how the data in the field
should be displayed. The picture here is similar to the
picture in forms in that special characters will be placed
at the appropriate positions. The only difference is that
only the character X is used to indicate the position in the
string. The reason for this is that a report picture only
acts as a template and not a mask. For example, a phone
number field would have the picture XXX-XXXX.
Display current (D)ate, (T)ime, Record (N)umber, Record (C)ount
or (P)age?
This question is only asked for system fields and their
meaning is fairly self evident. The only one that may
require explanation is current record count. The record
count refers to the number of records printed so far. This
type of field would be useful to number the records printed.
Reset count after each group? (Y/N)
The record count may be reset after each group. This
feature is useful if you want each group to be a separate
block with its own numbering.
==> The default is NO.
Reset page after each group? (Y/N)
The page count may be reset after each group.
==> The default is NO.
Page 60
Date format? (A)-MMDDYY (B)-DDMMYY (C)-YYMMDD (D)-MON DD, 19YY
(E)-MON DD/YY:
Date fields may be printed in one of five formats. A
picture may be used for the first three formats to place in
the appropriate delimiter such as a slash (/).
==> The default is A.
Time format? (A)-12 hrs. (B)-24 hrs.:
Time fields may either be printed in 12 hour or 24 hour
format. In 12 hour format, an AM or PM is automatically
placed after the time.
Display seconds? (Y/N)
In time fields, the number of seconds may also be displayed.
==> The default is NO.
Place at (C)urrent location or (A)djacent to previous text/field?
Specify where you want to align your field in relation to
other text or fields on the same line. Placing it at the
current location means that the field will appear on paper
in exactly the same location as it appears on the screen in
terms of its horizontal alignment. Placing it adjacent to
previous text or field, means that the field will be flushed
immediately adjacent to any text or field on that line.
==> The default is at the current location.
Justify (R)ight, (L)eft or (C)enter?
Should the field be right, left or centre justified?
Character fields are normally left justified while numeric
fields are normally right justified.
Remove trailing blanks? (Y/N)
If any trailing blanks are present, should they be removed?
Generally fields that are not fully filled have spaces added
to the end to fill them. If these spaces are not removed,
they will be printed.
==> The default is NO.
Insert commas? (Y/N)
Numeric fields may be formatted so that they have commas at
every third place. This is useful for monetary values. For
example 1000000 would be printed as 1,000,000.
==> The default is NO.
Page 61
Preceding '$' sign? (Y/N)
Numeric fields may have a dollar sign before them. Again
this would be used for monetary values.
==> The default is NO.
Number of columns in memo: and Number of rows in memo:
These two questions are asked for memo fields and allow you
to set the number of columns and rows to be printed in a
memo field.
The following table shows the active keys on the report editor.
=================================================================
Active Key Action
-----------------------------------------------------------------
ESC takes you to the previous screen and allows
you to exit this section of the program,
without saving.
ARROW CURSOR KEYS moves the cursor in the direction of the
arrows.
PAGEDOWN moves down 20 lines.
PAGEUP moves up 20 lines.
HOME moves the cursor to the extreme left.
END moves the cursor to the last text or field on
the line.
INSERT toggles between overwrite and insert mode.
DELETE deletes the text or field on the cursor.
BACKSPACE deletes the previous text character.
RETURN or ENTER inserts a blank line when in insert mode only
if the bottom line of the report is empty.
F1 context sensitive help.
F3 starts and ends blocking of an area.
F4 inserts a printer control character (an
inverted question mark) that causes the next
character to act as a sequence of control
characters to the printer depending upon how
it was defined in the printer definition
file.
F5 copies blocked area.
F6 moves the blocked area.
F7 places and defines a database, calculated or
system field.
F10 completes and saves the report.
CTRL-Y clears text only from the current line.
=================================================================
One-to-many Relationships
-------------------------
The records in a one-to-many relationship are set up in the same
way as on a form. Simply place all the fields for one record on
the screen, then use F3 to block them. Move the cursor to the
Page 62
second line and press F5 to copy the block as many times as is
required. When finished, press F3 again to unblock the fields.
Remember that the maximum number of records on the many side of a
one-to-many relationship allowed by PRO-dVelBase is 20, therefore
only 20 lines may be copied.
Group Expressions
-----------------
The report can be grouped by entering group expressions into the
group header band. This is done by pressing CTRL-G. A group
expressions window will open and up to 5 group expressions may be
used. The maximum length of an expression is 255. Pressing
CTRL-Z will allow longer expressions to be edited in a window but
generally group expressions only consist of a field name. Note
that if group expressions are used, a query must be used and
sorting must occur by these fields. Grouping occurs whenever the
value of the group expression changes. The expression is
evaluated for each record and all records that evaluate to the
same value are grouped together when they are printed on the
report. This type of feature may be used, for example, in a
report that breaks down sales by region or by salesmen. When
finished editing the group expressions, press F10 and the
expressions will be placed in the appropriate group header band.
Saving the Report
-----------------
Once the report is completed, press F10 and give the report a
descriptive, meaningful file description. An automatic check of
the report is also done at this time. If any errors were
detected, you will not be able to save the report unless the
errors are corrected.
B. Report/Modify
================
Once a report has been created, it may be modified. Modification
follows the same rules as creation. The definitions for each
field may be changed by placing the cursor over the field and
pressing F7. The answers to the questions may then be changed.
C. Report/Select
================
The process of selection places a previously created report into
the work area. If any errors are present in the report, the
report name will be placed in lower case in the work area and the
description will state that it is an UNEXECUTABLE and/or
UNMODIFIABLE report. If the file name is present in the catalog
but the file does not actually exist then the message "FILE DOES
NOT EXIST" will appear. This type of error may occur if a file
is deleted from the DOS level instead of using PRO-dVelBase to
delete it.
Page 63
D. Report/Execute
=================
Execution of the report allows it to be printed either to a
printer, the screen or a disk file. If a query has been selected
then the query acts as a filter to allow only a certain group of
records to be printed. A query will either be done automatically
if the data files are more recent than the query index file or if
they are not, you may choose to re-query the database files. If
the output is directed to a disk file, a name must be given to
the output file. If the report was defined as using
non-continuous paper, a prompt will be given when the end of page
is reached and a new one is required.
Remember, if group expressions are present in the report, an
appropriate query must be selected that will arrange the database
in an order that corresponds to the groups.
E. Report/Unselect
==================
This removes the report from the work area.
F. Report/Add to Cat.
=====================
Any report file with a .RPT extension may be added to the current
catalog. Be careful though because a given report may not refer
to the selected form.
G. Report/Remove from Cat.
==========================
The report file may also be removed from the catalog so that it
no longer displays but still exists on the current DOS directory.
H. Report/Delete
================
Deleting a report removes it from the DOS directory and from the
catalog. A confirmatory message will first be given before
proceeding.
Page 64
Chapter 5: Mail
================
PRO-dVelBase is capable of performing a mail merge. The process
of mail merge means taking a standard letter and merging it with
the records in the selected form to produce a series of
personalized letters. This feature is obviously quite useful in
many applications such as advertising. The letter may either be
created with PRO-dVelBase's internal word processor or an
external word processor. If created with an external word
processor, the file would have to be stored as a generic text
file and then imported into PRO-dVelBase. Because of the way
mail merge is handled, field placement occurs a little different
than with reports or labels. Fields must be placed by using
dBASE expressions and sandwiching them between the ASCII 20
character.
There are nine submenu commands under the mail menu. They
include: Select, Execute, Create, Modify, Unselect, Delete, Add
to Cat., Remove from Cat. and Import Text File.
A. Mail/Create
==============
To create a letter for mail merge:
1. Select Mail/Create.
2. Give this file an 8 character name, following dBASE naming
conventions.
3. At the Mail Definitions screen, answer the questions that
you are prompted with.
Left/Right/Top/Bottom margin:
This refers to the margins of the page. The range that you
may choose from is 0 to 40.
==> The default is set for 10 for left/right and 6 for
top/bottom.
Number of rows per page:
Most letter size paper has 66 rows per page while legal size
paper has 84. The range allowed is from 33 to 255.
==> The default is 66.
The following questions have the same meaning as in the report.
Please refer to that section for detail explanation of these
questions.
Continuous paper? (Y/N)
Print blank records? (Y/N)
Print deleted records? (Y/N)
Page 65
Name of Printer File? (A-Z)
Printer Port (A) LPT1 (B) LPT2 (C) LPT3 (D) COM1 (E) COM2:
Baud rate (A) 300 (B) 600 (C) 1200 (D) 2400 (E) 4800 (F) 9600:
Parity (A) Odd (B) None (C) Even:
Stop bits (1-2):
Data bits (7-8):
The following table shows the active keys in the mail editor.
=================================================================
Active Key Action
-----------------------------------------------------------------
ESC takes you to the previous screen and allows
you to exit this section of the program,
without saving.
ARROW CURSOR KEYS moves the cursor in the direction of the
arrows.
PAGEDOWN moves down 20 lines.
PAGEUP moves up 20 lines.
HOME moves the cursor to the extreme left.
END moves the cursor to the last text on the
line.
INSERT toggles between overwrite and insert mode.
DELETE deletes the character on the cursor.
BACKSPACE deletes the previous character.
F1 context sensitive help.
F4 inserts a printer control character (an
inverted question mark) that causes the next
character to act as a sequence of control
characters to the printer depending upon how
it was defined in the printer definition
file.
ALT-F4 inserts an expression character (ASCII 20).
All text sandwiched inbetween two expression
characters is handled as a dBASE expression.
F9 list fields.
CTRL-F9 list operators.
ALT-F9 list functions.
F10 completes and saves the letter.
CTRL-Y clears the text from current line.
=================================================================
The mail editor is a mini word processor with word wrap features.
The width of the screen is dependent upon how the left and right
margins were set. The maximum size of the letter is limited to
20,000 characters. Field placement is different than on the
report or label editor. Fields must be placed as dBASE
expressions sandwiched inbetween two expression characters (ASCII
20). The expression character is generated by pressing ALT-F4.
Page 66
It was designed in this way to allow letters to be created on an
external word processor and imported to PRO-dVelBase. Formatting
of the fields is also accomplished through dBASE expressions
instead of answering a series of questions. When the letter is
finished, press F10, give it a descriptive file name and save it.
Again, error checking is also performed at this time and the
letter cannot be saved until the error is corrected.
B. Mail/Modify
==============
Mail modification follows the same rules as mail creation.
C. Mail/Select
==============
Mail selection places the letter into the work area for use. If
there are any errors in the letter, an error will be reported,
the file name will be in lower case in the work area and the file
description will read UNEXECUTABLE and/or UNMODIFIABLE FILE. If
the file name is present in the catalog but the file does not
actually exist then the message "FILE DOES NOT EXIST" will
appear. This type of error may occur if a file is deleted from
the DOS level instead of using PRO-dVelBase to delete it.
D. Mail/Execute
===============
The selected letter will be printed either to the printer, file
or screen. Any formulas present in the letter will be
automatically evaluated and the appropriate values inserted
before printing occurs. If a query is selected, only the
filtered records will be printed.
E. Mail/Unselect
================
Unselection removes the mail from the work area.
F. Mail/Add to Cat.
===================
Any mail file with a .LET extension may be added to the current
catalog. Be careful though because a given mail may not refer to
the selected form.
G. Mail/Remove from Cat.
========================
The mail file may also be removed from the catalog so that it no
longer displays but still exists on the current DOS directory.
Page 67
H. Mail/Delete
==============
Deleting a mail removes it from the DOS directory and from the
catalog. A confirmatory message will first be given before
proceeding.
I. Mail/Import Text File
========================
External word processors may be used to create a letter. Many
stand alone word processors have much more powerful features than
the mini word processor in PRO-dVelBase and thus are more suited
for long letters. Also, this feature allows previously created
letters to be used. In order for PRO-dVelBase to use these
files, they must be stored as generic text files. This precludes
the use of any special formatting codes in the stand alone word
processor. Also, the size of the file imported is limited to
20,000 characters.
Page 68
Chapter 6: Label
=================
PRO-dVelBase is capable of printing labels. Labels are
self-adhesive and can be pasted onto envelopes for mailing. The
differences between the report and label generation are as
follows:
Label generation is capable of printing multiple copies of each
record while report generation can only print one copy of each
record.
Label generation is capable of printing different records across
the page while report generation can print only one record across
the page.
There are 8 submenu commands under the label menu. These
include: Select, Execute, Create, Modify, Unselect, Delete, Add
to Cat. and Remove from Cat.
The selections under the label menu is similar to those under the
report menu.
A. Label/Create
===============
Labels are created as follows:
1. Select Label/Create.
2. Give this file an 8 character name, following dBASE naming
conventions.
3. Answer the questions on the Label Definitions Screen.
Pressing F9 will automatically display many common label
formats and selecting one will fill in the appropriate
numbers for the questions.
For dot-matrix printer labels, also set the number of labels
across and down along with the inter-label spacing.
For laser printer labels, ensure the printer is printing at 6
lines per inch. This is done by defining a printer definition
file under Options/Printer Setup. Note that many laser printers
cannot print on the top and bottom margins therefore the rows per
page would have to be set at 60 instead of 66. Be sure that the
labels used are approved for laser printers.
Number of copies of each label:
This refers to the number of copies of the label(s) that you
would like to produce. The range that you may choose from
is 1 to 255.
==> The default is set for 1.
Page 69
Number of label columns:
This refers to the number of character spaces across the
label. Each character occupies one column. The range that
you may choose from is 10 to 78.
==> The default is 35, which is for a 3 1/2 inch across
label.
Number of label rows:
This refers to the number of rows there are down the label.
The range is 1 to 18.
==> The default is 5, which is for a 15/16 inch down label.
Number of rows per page:
This refers to the number of rows that exist down the page.
The range is 1 to 100.
==> The default is 66.
Number of labels across:
This refers to how many labels there are going across your
page. Some labels are 1 across, meaning they exist in one
long strip. The labels would be positioned one above the
next. The range is 1 to 10 across, therefore, you may use
labels that are from 1 to 10 across.
==> The default is 1.
Number of labels down:
This refers to the number of rows of labels that exist on
one page. The range is 1 to 30.
==> The default is 11.
Number of columns between labels:
This refers to the number of spaces between each label in a
horizontal direction, going across the page. Each space
occupies one column. The range is 0 to 50.
==> The default is 0.
Number of rows between labels:
This refers to the number of rows that exist between each
label in the vertical direction, going down the page. The
range is 0 to 50.
==> The default is 1.
Page 70
Left margin of page:
This refers to the number of columns, or spaces, from the
left edge of the paper to the edge of the first label. The
range is 0 to 100.
==> The default is 0.
Top margin of page:
This refers to the number of rows from the top edge of the
paper to the top edge of the first row of labels. Some
printers, including some laser printers, are unable to print
to the very edge of the paper. Therefore, to accomodate for
this, some labels are made so that there is a margin on the
top and on the bottom. The range for the top margin is 0 to
50.
==> The default is 0.
Continuous paper? (Y/N)
Answering NO to this question will cause PRO-dVelBase to
prompt you to insert the next page.
==> The default is YES.
Print blank records? (Y/N)
You may specify if you want blank records printed. If you
print the blank records, there will be a blank label where
your blank record is. If you do not want to waste a label,
then you should not print the blank records.
==> The default is NO.
Print deleted records? (Y/N)
If records have been marked as deleted, should they be
printed? Generally you will not want deleted records to be
printed.
==> The default is NO.
Name of Printer File? (A-Z)
The following printer questions have the same meaning as in
a report file. Please refer to the appropriate section in
Report/Create for the meaning of these questions.
Printer Port (A) LPT1 (B) LPT2 (C) LPT3 (D) COM1 (E) COM2:
Baud rate (A) 300 (B) 600 (C) 1200 (D) 2400 (E) 4800 (F) 9600:
Parity (A) Odd (B) None (C) Even:
Stop bits (1-2):
Data bits (7-8):
Page 71
The following table shows the active keys on the label editor.
=================================================================
Active Key Action
-----------------------------------------------------------------
ESC takes you to the previous screen and allows
you to exit this section of the program,
without saving.
ARROW CURSOR KEYS moves the cursor in the direction of the
arrows.
HOME moves the cursor to the extreme left.
END moves the cursor to the last text or field on
the line.
INSERT toggles between overwrite and insert mode.
DELETE deletes the text or field on the cursor.
BACKSPACE deletes the previous text character.
ENTER inserts a blank line when in insert mode,
only if the bottom line of the label is
empty.
F1 context sensitive help.
F3 starts and ends blocking of an area.
F4 inserts a printer control character (an
inverted question mark) that causes the next
character to act as a sequence of control
characters to the printer depending upon how
it was defined in the printer definition
file.
F5 copies blocked area.
F6 moves the blocked area.
F7 places and defines a database, calculated or
system field.
F10 completes and saves the label.
CTRL-Y clears the text from a line.
=================================================================
After answering the last question, the label editor will be
brought up and a label will appear with the dimensions specified
on the previous screen.
This editor works exactly like the report editor. Text may be
placed in it and fields may be placed by pressing F7. Again you
may define database, calculated or system fields and the
questions will be exactly the same as for the report editor. The
differences between the label editor and the report editor are:
1. The size of the screen is smaller than for the report
editor.
2. No grouping is allowed.
3. Memo fields may not be placed.
4. Calculated fields will have a database name of "CAL_L"
instead of "CAL_R".
The label is saved by pressing F10 and giving it a file
description. Again, error checking is performed when F10 is
pressed. Please refer to the Report chapter for a more complete
Page 72
explanation of the editor.
B. Label/Modify
===============
Label modification follows the same rules as label creation.
C. Label/Select
===============
Label selection places the label into the work area for use.
Error checking occurs also on selection and if an error occurs
the name will be put in lower case and a file description of
UNEXECUTABLE and/or UNMODIFIABLE FILE will be given. If the file
name is present in the catalog but the file does not actually
exist then the message "FILE DOES NOT EXIST" will appear. This
type of error may occur if a file is deleted from the DOS level
instead of using PRO-dVelBase to delete it.
D. Label/Execute
================
Execution of a label allows the output to be directed to either
the printer, screen or file.
E. Label/Unselect
=================
Unselection removes the label from the work area.
F. Label/Add to Cat.
====================
Any label file with a .LAB extension may be added to the current
catalog. Be careful though because a given label may not refer
to the selected form.
G. Label/Remove from Cat.
=========================
The label file may also be removed from the catalog so that it no
longer displays but still exists on the current DOS directory.
H. Label/Delete
===============
Deleting a label removes it from the DOS directory and from the
catalog. A confirmatory message will first be given before
proceeding.
Page 73
Chapter 7: Utilities
=====================
Utilities consists of a group of less used yet still important
functions. These include: Append, Post, Setup, Re-index,
Database Pack, Clone and Zap.
A. Append
=========
The process of appending consists of copying records from one
database file to the end of a second database file. The file
copied from is called the source database and consists of the
primary database file of the currently selected form. The file
copied to is called the target database.
One of the main purpose of the append command is to store records
that are infrequently used. For example, in an invoicing system,
records older than one month may be appended from the current
"working" database file to a "history" database file. This will
keep the current working database small and easily manageable and
also keep records indefinitely if necessary. Generally, the
history database file is a cloned copy of the working database to
ensure the fields of each database file are the same.
There are eight submenu commands under the append menu. They
include: Select, Execute, Create, Modify, Unselect, Delete, Add
to Cat. and Remove from Cat.
Append/Create
-------------
To create an append file:
1. Select Append/Create.
2. Give this file an 8 character name, following dBASE naming
conventions.
3. Answer the questions on the Append Database Definitions
screen.
Target Database:
The target database is the database file being appended to.
A pick list will appear with the names of all the database
files (with extension .DBF) on the current directory. If no
other database files are available, an error message will be
generated. Select the file you would like to append to. If
a target database was previously selected, press F9 to view
this pick list.
Do you want to delete transferred records? (Y/N)
The appended records may be marked for deletion on the
source database. Since this command works at the database
file level, any linked records on the selected form will not
be deleted. Only the records in the primary database file
Page 74
will be deleted. You would generally want to delete the
records in the primary database file and pack them after
appending to ensure that only one copy of the record exists.
==> The default is YES.
Do you want to update a logical field on the transferred records?
(Y/N)
Another way to know which records have been appended from
the source database is to update a logical field. For
example, if a logical field with the name APPENDED existed
on the source database, all records appended would be
updated to TRUE on this field. This method allows a way to
mark the appended records without deleting them.
==> The default is YES.
Logical Fieldname:
If the answer was YES to the previous question, a logical
field must be selected. If no logical fields exist on the
source database file, you cannot proceed. A window will
open and the field may be selected. If a logical field was
previously selected, press F9 to open this window.
After all these questions have been answered, the append editor
will appear. It consists of two windows. The window on the left
contains all the fields in the source database while the one on
the right will contain all the fields on the target database.
The process of creating an append file consists of placing fields
in the target database in which you would like to append records
to. The cursor bar is in the target database window. Moving the
cursor bar up and down causes the arrow head in the source
database window to move correspondingly. Place the arrow head
over the first field you would like appended from. Press F9.
This will open a window listing all the fields in the target
database that have the same field type. Select the field you
would like appended to. The field names do not have to match but
the field types do. Continue this process until you have
finished. If any mistakes were made, move the cursor to the
appropriate field and press the DELETE key. When finished press
F10, give it an appropriate file name description and save it.
The created append file has an extension .APP.
Append/Modify
-------------
Append modification follows the same rules as append creation.
Append/Select
-------------
Append selection places the append file into the work area for
use. Error checking occurs also on selection and if an error
occurs the name will be put in lower case and a file description
Page 75
of UNEXECUTABLE and/or UNMODIFIABLE FILE will be given.
Append/Execute
--------------
Execution of an append results in records from the source
database being appended to the target database. If a query is
present in the work area, only the records filtered by the query
will be appended. You may want to execute the query first to see
if the appropriate records will be appended.
Append/Unselect
---------------
Unselection removes the append file from the work area.
Append/Add to Cat.
------------------
Any append file with a .APP extension may be added to the current
catalog. Be careful though because a given append may not refer
to the selected form.
Append/Remove from Cat.
-----------------------
The append file may also be removed from the catalog so that it
no longer displays but still exists on the current DOS directory.
Append/Delete
-------------
Deleting an append removes it from the DOS directory and from the
catalog. A confirmatory message will first be given before
proceeding.
B. Post
=======
Posting is very similar to appending in that two database files
are involved: a source database and a target database file. The
difference lies in the fact that posting does not add new records
to the target database; the records are only updated. Posting
requires a key field on the target database to be indexed. When
posting occurs, the records to be posted from the source database
will update the corresponding records on the target database if a
match is found on the key field. The type of update depends upon
the field type. A numeric field type may be added, subtracted or
replaced. A non-numeric field type may only be replaced.
A typical example of posting occurs in an invoicing system. If
you have two database files with one containing the sales made
and the other containing the current inventory. The two
databases have a common key field called ITEM_NUM, which
Page 76
represents the item number. This field must be indexed in the
inventory database file. The invoice database will contain all
the sales made during the day. Posting will then allow the
number sold of each item number in the invoice database to be
subtracted from the number in stock field in the inventory
database. This procedure will ensure that the number in stock is
a correct count.
There are eight submenu commands under the post menu. These
include: Select, Execute, Create, Modify, Unselect, Delete, Add
to Cat. and Remove from Cat.
Post/Create
-----------
To create a post file:
1. Select Post/Create.
2. Give this file an 8 character name, following dBASE naming
conventions.
3. Answer the questions on the Post Database Definitions
screen.
Target Database:
The target database is the database file being posted to. A
window will appear with the names of all the database files
(with extension .DBF) on the current directory. Select the
file you would like to post to. If a target database was
previously selected, press F9 to open this window.
Do you want to delete transferred records? (Y/N)
The posted records may be marked for deletion on the source
database file. Since this command works at the database
file level, any linked records on the selected form will not
be deleted. Only the records in the primary database file
will be deleted.
==> The default is YES.
Do you want to update a logical field on the transferred records?
(Y/N)
Another way to know which records have been posted from the
source database is to update a logical field. For example,
if a logical field with the name POSTED existed on the
source database, all records posted would be updated to TRUE
on this field. This method allows a way to mark the posted
records without deleting them. This is generally the
preferable way to mark a record as being already posted
because a query may be set up so that all records that have
the POSTED field as TRUE will not be re-posted.
==> The default is YES.
Page 77
Logical Fieldname:
If the answer was YES to the previous question, a logical
field must be selected. If no logical fields exist on the
source database file, you cannot proceed. A window will
open and the field may be selected. If a logical field was
previously selected, press F9 to open this window.
After all these questions have been answered, the post editor
will appear. It consists of three windows. The window on the
left contains all the fields in the source database, the window
in the middle contains the operation to be performed and the one
on the right will contain all the fields on the target database.
The process of creating a post file consists of placing fields in
the target database in which you would like to post records to
and giving the appropriate operations to them. The cursor bar is
initially in the middle operation window and the default
operation is NONE. The NONE operation means that nothing will be
done to the target field if the record is posted. Moving the
cursor bar up and down causes the arrow head in the other two
windows to move correspondingly. Initially define the key field.
Move the cursor over to the key and press K. Press the right
arrow and move the cursor to the target database window. Press
F9 to view the indexed fields in the target database. Select the
appropriate one. The entire process of creating a post file
consists of placing fields to be posted to in the target database
window and setting the appropriate operation in the middle
operation window. The keys used to set the appropriate operation
are K for Key, N for None, R for Replace, A for Add and S for
Subtract. When the cursor is in the target database window, F9
will list the fields that have the same field type as the
corresponding field in the source database window. To delete a
particular field, press the DELETE key. When finished press F10,
give it an appropriate file name description and save it. A post
file is saved with extension .PST.
Post/Modify
-----------
Post modification follows the same rules as post creation.
Post/Select
-----------
Post selection places the post file into the work area for use.
Error checking occurs also on selection and if an error occurs
the name will be put in lower case and a file description of
UNEXECUTABLE and/or UNMODIFIABLE FILE will be given.
Post/Execute
------------
Execution of a post results in records from the source database
being posted to the target database. If a query is present in
Page 78
the work area, only the records filtered by the query will be
posted. You may want to execute the query first to see if the
appropriate records will be posted.
Post/Unselect
-------------
Unselection removes the post file from the work area.
Post/Add to Cat.
----------------
Any post file with a .PST extension may be added to the current
catalog. Be careful though because a given post may not refer to
the selected form.
Post/Remove from Cat.
---------------------
The post file may also be removed from the catalog so that it no
longer displays but still exists on the current DOS directory.
Post/Delete
-----------
Deleting a post removes it from the DOS directory and from the
catalog. A confirmatory message will first be given before
proceeding.
C. Setup
========
Setup takes a pre-existing database file with extension .DBF and
creates a field definition file (.FLD), screen definition file
(.SCN) and a catalog file (.CAT). These are the three additional
files necessary to define a form. This set is necessary before
any database files created by dBASE may be used by PRO-dVelBase.
When Setup is selected, a directory of all files with .DBF
extension is listed. The appropriate file may then be selected.
A warning will be given if the file already has an associated
.FLD file. This is because Setup will delete the previous .FLD
file.
A form will then be created with all the fields listed vertically
and their field names as labels for the field. Follow the
instructions under Form/Create and Form/Modify to modify this
form.
When finished press F10, give the form a optional file
description and save it. The form is now ready to use by
PRO-dVelBase.
Page 79
D. Re-index
===========
This command rebuilds the index files associated with the primary
database file of a form along with all the linked database files
if desired. Generally, PRO-dVelBase automatically handles
updating of the index when new records are added or when
pre-existing records are modified. Sometimes the index files may
get corrupted. Symptoms of a corrupted index file include
inaccurate sorts on indexed table view and inability to access
linked records through a key field. The Re-index command will
fix this problem.
E. Database Pack
================
Packing is a command that physically removes the records that
have been marked for deletion from the database file. It is
generally recommended to backup the files first before packing in
case you change your mind about the pack. Related files may also
be packed at the same time and PRO-dVelBase will prompt you if
there are any related files.
F. Clone
========
Cloning is a command that allows the structure of the primary
database file to be reproduced. The currently selected form is
used for cloning. A name must be given for the new form along
with an optional file description. Each field of the primary
database file will be reproduced along with its fixed field
definitions. Changeable field definitions, formulas, error
formulas, error messages, help messages, calculated fields and
scroll windows are dropped along with any relationship
definitions and indexes. The new form also does not have any
data in it.
One of the purposes of cloning is to produce a database file that
can act as a target database for the append command. This allows
records to be saved in a "history" database file and deleted from
the current "working" database file to keep it small.
G. Zap
======
Zapping a database file along with Form/Delete are potentially
the most dangerous commands in PRO-dVelBase. Zapping completely
removes all the records in the primary database file of the
selected form in one swoop. A warning message will be given
before being allowed to proceed.
Page 80
Chapter 8: Options
===================
Options consists of a group of functions that affect where and
how PRO-dVelBase will operate. They include: Change Dir,
Recalc, Flush, Printer Setup, Save Options and Quit.
A. Change Dir
=============
It is generally recommended that a particular application be
stored on a separate subdirectory rather than on the same one
that PRO-dVelBase resides on. The data directory may be changed
using this option. The naming convention follows standard DOS
convention. Drives may also be changed by using the commands A:\
for A drive, B:\ for B drive, etc.
B. Recalc
=========
The recalc command toggles automatic recalc ON and OFF. With the
recalc ON, all calculated and derived fields will be
automatically recalculated each time a field is updated in the
form. With it OFF, recalculations only occur when a record is
saved. In both cases manual recalc with CTRL-C always works.
The default is ON. It may be turned off if PRO-dVelBase is
running on a slower machine and many calculated or derived fields
have been defined.
C. Flush
========
The flush command causes all DOS buffers to be immediately
flushed once a write occurs. Normally writes to a disk are
stored in a DOS buffer and only when the buffers are full does a
disk write occur. This situation is dangerous if you experience
a power failure before the buffers are flushed. The default for
flush is ON and this guarantees that a write will write that data
immediately to the disk. You may elect to turn off the flush if
you are using a floppy disk system as flushing does slow the
saving of each record.
D. Printer Setup
================
Printer Setup allows printer definition files (drivers) to be
defined. These files have the extension .PRT and store the
control codes for various print styles for your particular
printer. This is an important preliminary step in installing
PRO-dVelBase. Up to 26 different printer definition files may be
created with the names A.PRT to Z.PRT. Define as many printer
definition files as you have printers connected to your computer.
The control codes stored in these files are used by report, label
Page 81
and mail.
Printer Setup/Create
--------------------
Selecting this command will take you to the printer definition
screen. First a Printer File Name has to be assigned. The name
must be a letter from A to Z. PRO-dVelBase defaults to the next
available letter. Next, the name of the printer must be entered.
Editing of the fields occurs by pressing E or ENTER. The control
codes for each of the given printer effects must then be entered
in decimal form with a space between each code. Most printers
that require multiple numeric control codes start with the escape
code (ASCII 27). If a certain effect does not exist, you may
leave the codes out. Please refer to your own printer manual for
the correct codes.
Initialization codes refer to the codes that must be sent to the
printer to clear and reset the printer. PRO-dVelBase
automatically sends these out before a report, label or mail is
printed.
Termination codes are the codes that are sent to the printer
indicating the print job is finished. These are automatically
sent out when a report, label or mail is finished printing.
Enter the control codes for each of the effects listed.
Generally an effect has a turn on code and a turn off code. If a
printer has a special effect, such as superscript, subscript,
etc., the codes may be entered at this point and the name of the
effect also saved.
The printer control codes may also automatically be filled in by
pressing F9 and selecting your printer. Many printers have
control codes that are the same as the printers listed. Epson
control codes are commonly used by many printers and selecting an
Epson printer is usually a safe bet if your printer is Epson
compatible. Many laser printers are compatible with the H.P.
LaserJet therefore selecting one of the LaserJet options may
work.
The codes are sent to the printer when the inverted question mark
(ASCII 168) is encountered in a report, label or mail. The
screen code defines which printer control codes will be sent out
to the printer. Note that an upper case letter will turn on the
effect and a lower case letter will turn off the effect.
When finished, press F10 to save the printer definition file.
Printer Setup/Modify
--------------------
A previous defined printer definition file may be selected from
the directory and modified.
Page 82
Printer Setup/Delete
--------------------
A previous defined printer definition file may be deleted.
E. Save WorkArea
================
This command saves:
1. The contents of the work area.
2. The status of the recalc, flush and insert.
3. The current data directory.
This information is stored in the file PRO.OPT and the next time
PRO-dVelBase is executed, the saved options are automatically
loaded.
F. Quit
=======
This commands exits from PRO-dVelBase and automatically closes
any open files.
Page 83
Appendix A: dBASE (TM) Naming Conventions
==========================================
1. PRO-dVelBase uses dBASE naming convention for all file
names.
2. A database file name may contain up to 8 characters.
Therefore, PRO-dVelBase will not even permit you to enter
file names having more than 8 characters.
3. The first character of a database file name must be a letter
of the alphabet.
4. Except for the first character, the rest of the characters
may be letters, numeric digits, or the underscore(_).
5. Database file names may not contain spaces or symbols other
than the underscore. The reasons for this is that DOS uses
the period (.), the slash (/), the colon (:) and the
semicolon (;) for special functions. Therefore, these
symbols should not be used in file names. As a precaution,
PRO-dVelBase will prevent you from making these errors.
Note: All file names will be forced to upper case
regardless of what case you use to enter them.
6. There are also a few names that are reserved by PRO-dVelBase
for internal usage. These names are CAL_F, CAL_R AND CAL_L.
They are used for calculated fields therefore cannot be used
as file names.
7. Field names follow the same convention except they may be up
to 10 characters long.
8. All file and field names used by PRO-dVelBase must follow
these conventions.
Page 84
Appendix B: Formulas and Functions
===================================
PRO-dVelBase allows you to perform mathematical operations as
well as complex queries. This chapter will help you to
understand the basis for these procedures. It will help you in
writing formulas and conditions using operators and functions.
A. Formulas
===========
A PRO-dVelBase formula is equivalent to a dBASE expression and
consists of a string that contains a sequence of operators,
functions, field names and constants. All expressions evaluate
to a specific type, such as numeric, character, date or logical.
Therefore, field names and constants used in an expression must
be of the same type or convert to the same type. For example,
you may add a numeric field only to a numeric field. To further
clarify this point, the condition to query a surname field must
contain a formula that returns a character type. A formula that
returns a numeric type is not acceptable. The only exception to
this rule is that a whole number may be added to or subtracted
from a date type resulting in another date type.
PRO-dVelBase has two additional types not found in dBASE: single
key and time. These two types are considered equivalent to
character fields.
Also memo fields cannot be used by formulas and formulas cannot
evaluate to a "memo type".
B. Constants
============
Constants have a fixed value and do not change. There are 4
types of constants that may be used in expressions. They are the
numeric, character, date or logical constants.
Numeric Constants
-----------------
The numeric constant represents a number. Some examples are:
-7, 8.5 and 20.
Character Constants
-------------------
Character constants are letters enclosed within a set of quotes.
They may be enclosed within double or single quotes. However,
the set of quotes used must have its matching counterpart at the
beginning and at the end. For example, "Mary Brown" or 'Mary
Brown' would be legitimate. Also, if you need to use a set of
quotes within a set of quotes, you would distinguish them by
Page 85
using one type of quotes inside another type of quotes. For
example, "Mary Brown's" or '"Please"' are legitimate character
constants.
Logical Constants
-----------------
Logical constants are the values in a logical field. For
example, .TRUE., .FALSE., .T., .F. would be legitimate logical
constants. Note that the periods must be included as part of the
constant.
Date Constants
--------------
Date constants cannot be represented by themselves. A date
constant can only be represented by using the function CTOD to
convert a character constant in the form "CCYYMMDD" to a date.
For example the date July 4, 1990 is represented by the function
CTOD("19900704").
C. Operators
============
Operators are the symbols that manipulate elements of formulas.
These symbols may represent numeric, string, relational and
logical operations. For example, the + (plus) sign is a numeric
operator in the expression: 72 + 24.
The order of precedence refers to the priority of an operator
when evaluating a formula that contains more than one operator.
The operator with the higher priority will be evaluated first.
For example, in the expression 4 + 8/2, the divide operator has a
higher priority than the plus operator. Thus, 4 + 8/2 = 8.
All formulas are evaluated from left to right. Subformulas that
are enclosed in () brackets will be evaluated first, with
operators being evaluated by their order of precedence.
Page 86
The four basic types of operators are numeric, string,
relational, and logical operators. Their order of precedence is
shown on the following table.
=================================================================
Type Operator Name Symbol or Name Order of
Precedence
-----------------------------------------------------------------
Numeric Sign (positive or
negative) of a
numeric expression Unary +,- 7
Exponentiation ** or ^ 7
Multiply * 6
Divide / 6
Add + 5
Subtract - 5
String Concatenate I + 5
Concatenate II - 5
Relational Equal to = 4
Not Equal to <> or # 4
Less Than < 4
Greater Than > 4
Less Than or Equal To <= 4
Greater Than or Equal To >= 4
Substring Comparison $ 4
Logical And .AND. 3
Or .OR. 2
Not .NOT. 1
=================================================================
Page 87
The following table shows some examples of operators.
=================================================================
Operator Type Action Example
-----------------------------------------------------------------
Numeric operates on
numeric values 4 + 4 returns 8
String
Concatenate I connects two
character values
end to end, retaining
all spaces in each
value. "Mary " + "Brown"
becomes "Mary Brown"
Concatenate II connects two character
values into one, moving
all spaces at the end of
the first character value
to the end of the
combined value. "Mary " - "Brown"
becomes "MaryBrown "
Relational used to return a logical
(TRUE or FALSE) result.
These operators operate on
numeric, character or date
values. However, both
values being compared must
be of the same type.
These operators are
primarily used in data
search routines. 9>20 returns FALSE
The Substring Comparison
operator operates on two
character values. It is
used in logical conditions.
It returns a TRUE value if
the first value is equal
to, or found within the
second value. "Mary" $ "Mary
Brown" returns TRUE
Logical will return a logical
result and ties two logical
values together. Primarily
used in data search
routines. 1=1 .AND. 2=2
returns TRUE
=================================================================
Page 88
D. Functions
============
Functions may be recognized easily because they always have a
function name and are followed by a left and right bracket.
There may also be specific values or parameters enclosed within
the left and right brackets. These are called arguments of the
function. The arguments must be of a specific type, such as a
character, numeric or date type.
You will note that some functions do not have arguments in their
brackets. However, to differentiate a function from a field
name, functions that have no arguments will have a set of empty
brackets following their function name.
The following is a list of the functions that PRO-dVelBase will
permit you to use. The function names may be either upper or
lower case.
ABS(Num_Value)
--------------
Returns the absolute value of a numeric value.
e.g. ABS(-30) returns 30
ASC(Char_Value)
---------------
Returns the ASCII value of the leftmost character of a character
value.
e.g. ASC("Jones") returns 74
AT(Char_Value1, Char_Value2)
----------------------------
Returns the starting position, as a numeric value, of the first
character value within the second character value.
e.g. AT("XYZ","ABCXYZ") returns 4
CDOW(Date_Value)
----------------
Returns the name of the day of week as a character string from
the given date.
e.g. CDOW(DATE()) If the date is Monday, December 3, the
function returns "Monday".
CHR(Num_Value)
--------------
Converts a numeric value to its corresponding ASCII character
value.
e.g. CHR(80) returns "P"
Page 89
CMONTH(Date_Value)
------------------
Returns the name of the month as a character value from the given
date.
e.g. CMONTH(DATE()) returns "January" if today is January
10, 1990
CTOD(Char_Value)
----------------
Character to Date. Converts a character value to a date value.
The character value would be in the format "CCYYMMDD".
e.g. CTOD("19901203")
DATE()
------
Returns the system date in the format CCYYMMDD.
DAY(Date_Value)
---------------
Returns the numeric value of the day from the given date.
e.g. DAY(DATE()) returns 10 if today is January 10, 1990
DBF()
-----
Returns the name of the current database file that you are using.
e.g. DBF() returns "CUSTOMER.DBF" if you have selected and
are currently using the customer database.
DEL()
-----
Returns a "*" to indicate that the current record is marked for
deletion. Returns " " if the current record is not marked for
deletion.
DELETED()
---------
Returns TRUE to indicate that the current record is marked for
deletion otherwise it returns FALSE.
DOW(Date_Value)
---------------
Returns the day of week as a numeric from the given date. Sunday
is considered day 0.
e.g. DOW(DATE()) If the date is Monday, December 3, the
function returns 1.
DTOC(Date_Value) and DTOS(Date_Value)
-------------------------------------
Date to Character and Date to String. Converts a date value to a
character value. The resulting character value will have the
format "CCYYMMDD".
e.g. DTOC(DATE()) If the date was December 3, 1990 the
resulting character value would be "19901203".
Page 90
EXP(Num_Value)
--------------
Exponential value. Returns the exponential value of the numeric
value.
e.g. EXP(1) returns 2.71828183
FIELD(Num_Value)
----------------
Returns the fieldname of the field whose position, in the
database structure, corresponds to the position of the given
numeric value.
e.g. Field(3) If PHONE_NO is the third field defined in a
file called CUSTOMER.DBF, then this returns "PHONE_NO".
IIF(Condition, Expression1, Expression2)
----------------------------------------
Immediate-if function. Returns Expression1 if and only if the
condition evaluates TRUE; otherwise, it returns Expression2.
e.g. IIF(cost>1000,"high cost","low cost")
Returns "high cost" if and only if cost is greater
than 1000; otherwise, it returns "low cost."
INT(Num_Value)
--------------
Converts the given numeric value to an integer.
e.g. INT(4.1797) returns 4
ISALPHA(Char_Value)
-------------------
Returns the logical value, TRUE, if the Char_Value begins with an
alpha character. Otherwise, the logical value, FALSE, is
returned.
e.g. ISALPHA("123-xyz") returns FALSE
ISLOWER(Char_Value)
-------------------
Returns the logical value, TRUE, if the leftmost character is in
lower case. Otherwise, the logical value, FALSE, is returned.
e.g. ISLOWER("aBcD") returns TRUE
ISLOWER("ABC") returns FALSE
ISUPPER(Char_Value)
-------------------
Returns the logical value, TRUE, if the leftmost character is in
upper case. Otherwise, the logical value, FALSE, is returned.
e.g. ISUPPER("abc") returns FALSE
ISUPPER("ABC") returns TRUE
LEFT(Char_Value, Number of characters from left)
------------------------------------------------
Returns the given character value, showing only the specified
number of characters from the left.
e.g. LEFT("Mary Smith",4) returns "Mary"
Page 91
LEN(Char_Value)
---------------
Returns the length of the character value.
e.g. LEN("Mary Smith") returns 10
LOG(Num_Value)
--------------
Returns the natural logarithm of the numeric value.
e.g. LOG(2.71828183) returns 1
LOWER(Char_Value)
-----------------
Converts all upper case alpha characters to lower case.
e.g. LOWER("Mary Smith") returns "mary smith"
LTRIM(Char_Value)
-----------------
Trims leading blanks from the character value.
e.g. LTRIM(" Hello") returns "Hello"
MAX(Num_Value1, Num_Value2)
---------------------------
Returns the larger of the two numeric values that are compared.
e.g. MAX(4.97, 5.97) returns 5.97
MIN(Num_Value1, Num_Value2)
---------------------------
Returns the smaller of the two numeric values that are compared.
e.g. MIN(4.97, 5.97) returns 4.97
MOD(Num_Value1, Num_Value2)
---------------------------
Returns the integer remainder that is left when you divide
Num_Value1 by Num_Value2.
e.g. MOD(16,4) returns 0
MOD(15,4) returns 3
MONTH(Date_Value)
-----------------
Returns the numeric value of the month from the given date.
January is considered month 1.
e.g. MONTH(DATE()) returns 1 if today is January 10, 1990
RECCOUNT()
----------
Record count function. Counts the total number of records in the
database and returns the number count.
e.g. RECCOUNT() will return 8000 if there are 8000 records
in the database.
RECNO()
-------
Record number function. Reads the record number of the current
record and returns that record number.
Page 92
RIGHT(Char_Value, Number of characters from right)
--------------------------------------------------
Returns the given character value, showing only the specified
number of characters from the right.
e.g. RIGHT("Mary Smith",5) returns "Smith"
ROUND(Num_Value1, Num_Value2)
-----------------------------
Rounds off Num_Value1 so that it will show the number of decimal
places as specified by Num_Value2.
e.g. ROUND(4.797970, 3) returns 4.798
RTRIM(Char_Value)
-----------------
Trims trailing blanks from the character value.
e.g. RTRIM("Smith ") returns "Smith"
SPACE(Num_Value)
----------------
Adds the number of spaces as specified by the numeric value.
e.g. FIRST_NAME + SPACE(1) + LAST_NAME If the first name
was Mary and the last name was Smith, this returns
"Mary Smith".
SQRT(Num_Value)
---------------
Returns the square root of the numeric value.
e.g. SQRT(9) returns 3.
STR(Num_Value, Length, Decimals)
--------------------------------
String function. Converts a numeric value into a character value
and displays it according to the specified length and decimal
place stated in the function. The length indicates the number of
characters allowed, including the decimal and unary +/-. The
decimals indicate the number of decimal places allowed. If the
resulting string contains more characters than the length of
characters permitted, then *'s will be returned.
e.g. STR(4.16345,5,3) returns "4.163".
SUBSTR(Char_Value, Starting Position, Number of Characters)
-----------------------------------------------------------
The substring function returns a portion of the given character
value. The character value will start at the Starting Position
and be the length specified by the Number of Characters.
e.g. SUBSTR("XYZ",2,1) returns "Y"
SUBSTR("Mary Brown",7,3) returns "row"
TIME()
------
Time function. Returns the system time as a character value in
the format HHMMSS.
e.g. TIME() returns "090000" if it is 9:00 a.m.
Page 93
UPPER(Char_Value)
-----------------
Converts a character string to upper case.
VAL(Char_Value)
---------------
Converts a character value to a numeric value.
e.g. VAL("-7") returns -7
VAL("18") returns 18
YEAR(Date_Value)
----------------
Returns the numeric value of the year from the given date.
e.g. YEAR(DATE()) returns 1990 if today is January 10, 1990
Page 94
Appendix C: Warning and Error Messages
=======================================
Warning messages indicate something adverse may happen if you
proceed. It is possible to proceed as long as you are aware of
the consequences.
Error messages will not allow you to proceed unless the error is
corrected.
A. Warning Messages
===================
Error Formula Evaluates to False. Save Anyways?
An error formula on the form evaluates to FALSE. The record
may be saved anyways or else the field value re-entered.
Field Definition File Already Exists. Continue Setup?
A setup was attempted on a .DBF file that has an associated
.FLD file. The previous .FLD file will be deleted if the
Utilities/Setup operation is done.
Foreign Key Field of Different Length. Relate Anyways?
The common key fields between a parent and child database
files should be of the same length. If they are not of the
same length, errors may occur in linking the two databases.
Try to change the field length of the key in either the
parent or child so they match.
Possible Circular Reference. Save Anyways?
A circular reference is when a formula refers to another
field with a formula that ultimately refers back to the
original formula. Saving a circular reference will
generally cause errors but there may be some cases where a
circular reference would be the best way to define the form.
It is recommended to try the form out with a few records
first to see if the calculations evaluate correctly.
Record(s) Changed. Save?
The current record(s) has been changed. The changes may be
saved or discarded.
Required Field Not Filled. Save Anyways?
A form has a required field that was not filled. The record
may be saved or the required field have a field value
entered.
Warning. Destination Will Be Overwritten. Proceed?
An attempt was made to copy or move a block to a target with
text or field present. The target text or fields will be
overwritten.
Page 95
WARNING! Data Files Will Be Deleted. Continue?
Deleting the form will delete the primary database file. A
lot of data may be lost therefore be careful when you choose
this option.
WARNING! File Exists. Replace?
The output file name already exists on the current
directory. This will overwrite the previous file.
WARNING! This Will Remove All Records. Continue?
The zap function will remove all records from the primary
database file. A lot of data may be lost therefore be
careful when you choose this option.
B. Error Messages
=================
The following is a list of PRO-dVelBase error messages.
Catalog File Not Found.
The associated catalog file with .CAT extension could not be
found for the selected form. It may have been deleted from
the DOS level. The catalog file may be re-created by
modifying the selected form and saving it again.
Database File is Missing a Field.
One of the field description files (.FLD extension) has an
extra field not found in its corresponding database file
(.DBF extension). This is generally remedied by running the
Utilities/Setup function on the offending database file and
re-creating the field description files and screen
description files (.SCN extension).
Database Not Located While Evaluating Formula.
The database file specified in the formula was not located.
Duplicate Key Value Not Allowed.
The entered field value is already present in another record
within the database file. This error message will only
occur if the current field is indexed and the "Prevent
Duplicate Entries" question is answered YES.
Error Building Index.
This error indicates that there was either insufficient
memory or there were too many records in the database to
index.
Error Closing Index.
This error indicates that an index file could not be closed.
Try reindexing the form.
Page 96
Error in Printer Code String.
The string of printer codes entered has one or more wrong
codes.
Executing Null Formula.
Execution of a null formula was attempted.
Expecting ',' or '(' While Evaluating Formula.
The formula is probably missing a comma or a left bracket.
Extra Field(s) in Selected File.
The currently selected object has extra field(s) not found
in the selected form. This may be corrected by modifying
the object and deleting the extra fields.
Field Not Found in Underlying Form.
The cause of this error depends upon where it was generated.
If in the form, it generally indicates a field that has been
deleted in a related form. If in one of the other objects,
then it indicates the field has been deleted from the
currently selected form. This error may be corrected by
deleting the offending field.
Field Length Mismatch or Field Type Mismatch.
A discrepancy exists between the field length or type
described in one file compared with the field length or type
described in a second file. In the form selection, this may
occur when one of the fields in the field description file
(.FLD extension) has a length or type that does not match
the length or type in the corresponding database file (.DBF
extension). This is generally remedied by running the
Utilities/Setup function on the offending database file and
re-creating the field description files and screen
description files (.SCN extension). If this error occurs in
other objects, the object should be modified, and the
offending field corrected or deleted. Generally this error
occurs when a field length or type has been altered and
there are related files that also reference the altered
field.
Field of Given Type Not Present.
This error occurs in the process of creating an append or
post file. It indicates that no fields of the appropriate
field type are present.
Fieldname Already Used.
Each field in a database file must have a unique name.
File Closing Error.
Unable to close a file. Generally indicates a corrupted
file or a disk failure.
Page 97
File Creation Error.
This error may be caused by a full directory or a disk
failure.
File Does Not Exist.
The selected file does not exist on the current directory.
This may occur if the file has been deleted from the DOS
level but its name is still in the catalog. The file name
has to be removed from the catalog and the file re-created.
File Name Already Used.
The given file name already exists and a different one must
be used.
File Name is a Reserved Word.
An attempt was made to use a reserved word as a file name.
The words "CAL_F", "CAL_R" and "CAL_L" are reserved by
PRO-dVelBase for internal use to represent calculated
fields.
File Not Found.
The requested file was not found on the current directory.
File Opening Error.
The requested file does not exist and may have been deleted
at the DOS level. Another possible cause is an insufficient
number of file handles. Try increasing the number of opened
files allowed by using the command "FILES=60" in the
CONFIG.SYS file and restarting the computer.
File Reading Error.
A read error could be caused by a disk failure.
File Writing Error.
A write error will occur when the disk is full.
Formula is Not Complete.
The formula could not be evaluated because it is incomplete.
Help File Not Found.
The PRO.HLP file could not be found.
Illegal Date in Formula.
An illegal date was encountered when evaluating a date
value.
Incompatible File Type.
An attempt was made to open a non-PRO-dVelBase file. The
offending file must be deleted and re-created.
Index File is Missing a Key.
The index file key of a database record does not exist.
Page 98
Insufficient Memory.
This is a fatal error and immediately exits to DOS after it
is encountered. Either the amount of RAM has to be
increased, any TSR programs unloaded or the form has to be
simplified and some of the relationships removed.
Insufficient Space for Field Placement.
There is insufficient space at the current position of the
form to place a field of the defined length.
INTERNAL ERROR NUMBER:
This indicates an unresolvable error. Please contact
Accelerated Software with the details.
Invalid Date.
The entered date is incorrect.
Invalid Number.
The entered number is incorrect.
Invalid Operation for Given Field Type.
This error may occur in creating a post file. Only numeric
field types are allowed to be added or subtracted.
Invalid Time.
The entered time is incorrect.
Key Field Already Defined.
Only one key field allowed in a post file.
Key Field Must Be Indexed.
This error may occur when creating a post file. The field
in the target database must be indexed before it can be
posted to.
Key Value Doesn't Exist.
The entered value does not exist in the related database
file. This error will only occur if question "Reject if
value doesn't exist in related database" is answered YES.
Key Length Over 100 Characters.
Index files allow for a maximum of 100 characters for the
key.
Logical Update Field Not Present in Source Database.
If a logical field is to be updated when appending or
posting, the field must first be defined in the source
database.
Maximum Number of Printer Files Already Defined.
A maximum of 26 printer files allowed.
Maximum of 127 Fields.
A maximum of 127 fields allowed per database object.
Page 99
Maximum of 5 Database Files Per Form.
A maximum of 5 related database files allowed per form.
Maximum of 20 Records in a One-To-Many Relationship.
The current version of PRO-dVelBase allows a maximum of 20
records on the many side of a one-to-many relationship.
Memo File Missing.
The memo file (with .DBT extension) for the current database
file could not be found. It was probably deleted at the DOS
level.
Multiple Field Copies Not Allowed.
This error occurs in the process of creating or modifying a
form. Multiple copies of the same field are found on the
form. The user was probably attempting to create another
field with similar definitions by blocking and copying.
This process, however, will create another field with the
same field name which is not allowed. The offending field
must be deleted and re-defined.
No Files Found.
No files could be found on the current directory.
No End Formula Character.
The dBASE expression is not sandwiched between the formula
character (ASCII 20) in a letter.
No Index For Present Field.
Unable to perform an indexed search because current field
lacks an index.
No Indexes For Related Database.
Unable to view the related database in indexed table view
because it does not have any indexes.
No Key Fields Present.
This error occurs in the process of relating forms and
indicates that no indexed fields are present.
No Record(s) Found.
No records found that match specified criteria.
No Selected Label.
There is no label file in the work area.
No Selected Mail.
There is no mail file in the work area.
No Selected Report.
There is no report file in the work area.
Not a Textfile.
Cannot import a non-textfile into mail merge.
Page 100
Only One Memo Field Allowed Per Form.
Only one memo field may be defined per form.
Overflow While Evaluating Formula.
The formula is too large or too complex for PRO-dVelBase to
evaluate.
Overlay File Not Found.
Overlay file for PRO-dVelBase could not be found.
Parameter or Operator has the Wrong Type.
Type checking for formulas occur at run time. The formula
has a type mis-match.
Path Not Found.
The specified path could not be found.
Picture Too Short.
A picture must have the same number of user entered
characters as the length of the field.
Posting Requires a Key Field.
An attempt was made to save a post file without a key field.
One key field must be defined for each post file.
PRO.PRT File Not Available.
Unable to find the main printer definition file.
Range Error.
The field value is beyond the specified range allowed for
the field.
Right Bracket Missing in Formula.
The formula requires equal number of right brackets as left
brackets.
Selected Object Not Found in Catalog.
Catalog does not contain any of the selected objects. They
must either be created or added to the catalog.
Text File Too Long.
Maximum length of text file allowed is 20,000 characters.
Trying to Move Block Beyond Screen Window.
The marked block will partially end up outside of the screen
window.
Unable to Create an Empty Database File.
This error occurs when a form is saved with no fields in the
primary database file. Each database file must contain at
least one field.
Page 101
Unrecognized Function in Formula.
The formula has a function that is not recognized as a
legitimate PRO-dVelBase function.
Unrecognized Operator in Formula.
The formula has an operator that is not recognized as a
legitimate PRO-dVelBase operator.
Unrecognized Value in Formula.
The formula has a value that is not recognized as a field,
string, number, logical value or function.
Unterminated String in Formula.
A character string must terminate with a right quote.
Page 102
Appendix D: PRO-dVelBase Files
===============================
The following is a list of files present in PRO-dVelBase or
created by PRO-dVelBase. The '*' will indicate any legitimate
DOS file name. Generally the name should also follow dBASE
naming convention.
A. Program Files
================
PRO.EXE, PRO.OV1 and PRO.OV2
These files represent the main program file along with its
overlays.
PRO.HLP
PRO-dVelBase help file.
PRO.PRT
Main printer definition file.
B. Created Files
================
*.APP
An append file stores the names of the database files and
their associated fields which are to be appended.
*.BAK and *.TBK
These are the backup files to the main database files
created when a form is modified.
*.CAT
This is a catalog file and contains the names of all
associated files for a given form.
*.DBF and *.DBT
These are the main database files along with an associated
memo field file. These files are dBASE compatible.
*.FLD
This is the field definition file and contains all of the
Fixed Field Definitions for a given form.
*.LAB
A label file which stores a given label design.
*.LET
A letter file used in the process of mail merge.
*.NDX
These are the index files for PRO-dVelBase and they are
dBASE compatible.
Page 103
*.QCF
This is a query condition file and stores created queries.
*.QIF
This is a query index file and is created once a query is
executed. It stores the record numbers of the records which
match the conditions stored in *.QCF.
A.PRT to Z.PRT
The user created printer definition files.
*.PST
A post file stores the names of the database files and their
associated fields which are to be posted.
*.RPT
This is a report file and stores the format of the
previously created report.
*.SCN
A screen definition file stores the Changeable Field
Definitions for a given form, field locations on the screen
and the relationships with other database files.
Page 104
Appendix E: Trademark Notices
==============================
1. PRO-dVelBase is a trademark of Accelerated Software
2. dBASE is a trademark of Borland International Inc.
3. Clipper is a trademark of Nantucket Corp.
4. CodeBase is a trademark of Sequiter Software.
5. dBXL is a trademark of WordTech Systems Inc.
6. Fox Base is a trademark of Fox Software.
7. MS-DOS is a trademark of Microsoft Corp.
8. PC-DOS is a trademark of IBM.